本文整理汇总了C++中ITfCategoryMgr::GetGUID方法的典型用法代码示例。如果您正苦于以下问题:C++ ITfCategoryMgr::GetGUID方法的具体用法?C++ ITfCategoryMgr::GetGUID怎么用?C++ ITfCategoryMgr::GetGUID使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ITfCategoryMgr
的用法示例。
在下文中一共展示了ITfCategoryMgr::GetGUID方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetDisplayAttributeData
HRESULT GetDisplayAttributeData(TfEditCookie ec, ITfReadOnlyProperty *pProp, ITfRange *pRange, TF_DISPLAYATTRIBUTE *pda, TfGuidAtom *pguid)
{
VARIANT var;
IEnumTfPropertyValue *pEnumPropertyVal;
TF_PROPERTYVAL tfPropVal;
GUID guid;
TfGuidAtom gaVal;
ITfDisplayAttributeInfo *pDAI;
HRESULT hr = E_FAIL;
ITfCategoryMgr *pcat = NULL;
if (FAILED(hr = CoCreateInstance(CLSID_TF_CategoryMgr,
NULL,
CLSCTX_INPROC_SERVER,
IID_ITfCategoryMgr,
(void**)&pcat)))
{
return hr;
}
hr = S_FALSE;
if (SUCCEEDED(pProp->GetValue(ec, pRange, &var)))
{
if (SUCCEEDED(var.punkVal->QueryInterface(IID_IEnumTfPropertyValue,
(void **)&pEnumPropertyVal)))
{
while (pEnumPropertyVal->Next(1, &tfPropVal, NULL) == S_OK)
{
if (tfPropVal.varValue.vt == VT_EMPTY)
continue; // prop has no value over this span
gaVal = (TfGuidAtom)tfPropVal.varValue.lVal;
pcat->GetGUID(gaVal, &guid);
if ((g_pdam != NULL) && SUCCEEDED(g_pdam->GetDisplayAttributeInfo(guid, &pDAI, NULL)))
{
//
// Issue: for simple apps.
//
// Small apps can not show multi underline. So
// this helper function returns only one
// DISPLAYATTRIBUTE structure.
//
if (pda)
{
pDAI->GetAttributeInfo(pda);
}
if (pguid)
{
*pguid = gaVal;
}
pDAI->Release();
hr = S_OK;
break;
}
}
pEnumPropertyVal->Release();
}
VariantClear(&var);
}
pcat->Release();
return hr;
}