以下是 COleControl::OnGetPredefinedStrings 方法的基本框架:
void COleControl::OnGetPredefinedStrings(DISPID dispID, CALPOLESTR* pCaStringsOut, CADWORD* pCaCookiesOut)
{
// 在这里执行获取预定义字符串的操作
// dispID 表示属性的标识符,pCaStringsOut 和 pCaCookiesOut 用于返回字符串和 cookie 的数组
// 例如:
// if (dispID == DISPID_MYPROPERTY)
// {
// // 返回预定义的字符串数组
// static LPCOLESTR arrStrings[] = { L"Option1", L"Option2", L"Option3" };
// pCaStringsOut->cElems = 3;
// pCaStringsOut->pElems = (LPOLESTR*)CoTaskMemAlloc(sizeof(LPOLESTR) * 3);
// memcpy(pCaStringsOut->pElems, arrStrings, sizeof(LPOLESTR) * 3);
// }
}
在上述代码中,dispID 参数表示属性的标识符,而 pCaStringsOut 和 pCaCookiesOut 用于返回字符串和 cookie 的数组。你可以根据需要添加相应的逻辑,以提供预定义字符串的信息。
需要注意的是,OnGetPredefinedStrings 方法通常被派生类重载,以提供特定的预定义字符串信息。在这个方法中,你可以返回与特定属性相关联的字符串数组。在返回字符串数组时,需要使用 CoTaskMemAlloc 来分配内存,并在不需要字符串数组时使用 CoTaskMemFree 释放内存。
转载请注明出处:http://www.zyzy.cn/article/detail/21184/MFC/COleControl