UUID : 代表COM组件
CLSID : 代表COM组件中的类
IID : 代表COM组件类中的导出接口
http://www.cppblog.com/wlwlxj/archive/2006/09/06/12104.html
IE/HTML调用OCX,classid就是CLASS_xxxx,classID,不是LIBID_xxxx。
https://svn.kenai.com/svn/google-earth-hacks~subversion/GoogleEarthHacks/lib/jawin-2.0-alpha1/cpp/TypeLibWrapper/org_jawin_code_TypeLibWrapper.cpp
// Type Libraries : LIBID_xxxx
// CoClasses : CLASS_xxxx
// DISPInterfaces : DIID_xxxx
// Non-DISP interfaces: IID_xxxx
<HTML> <H1> ActiveX Test Page </H1><p>ActiveFormProj1.ocx <HR><center><P> <OBJECT classid="clsid:A0D7E7C9-C7D4-4F6F-840A-F493E0617476" codebase="http://192.168.0.2/ActiveFormProj1.ocx#version=1,0,0,0" width=350 height=550 align=center hspace=0 vspace=0 > </OBJECT> </HTML>
c++ 获取ocx/com的guid信息

HRESULT hr; ITypeLib *pITypeLib; TLIBATTR *tlibAttr; TYPEATTR *ppTypeAttr; Memo1->Clear(); hr = LoadTypeLib(edtOcx->Text.Trim().c_str(), &pITypeLib); if (SUCCEEDED(hr)) { int nTypeCount; nTypeCount = pITypeLib->GetTypeInfoCount(); for (int i = 0; i < nTypeCount; i++) { ITypeInfo *pITypeInfo; // what the type is? see define of TYPEKIND, it is a enum hr = pITypeLib->GetTypeInfo(i, &pITypeInfo); if (SUCCEEDED(hr)) { ITypeInfo *enumKind; pITypeLib->GetTypeInfo(i, &enumKind); // get type name BSTR bstrName, pBstrDocString, pBstrHelpFile; pITypeInfo->GetTypeAttr(&ppTypeAttr); pITypeInfo->GetDocumentation(MEMBERID_NIL, &bstrName, &pBstrDocString, NULL, &pBstrHelpFile); Memo1->Lines->Add(Sysutils::GUIDToString(ppTypeAttr->guid)); Memo1->Lines->Add(bstrName); Memo1->Lines->Add(pBstrDocString); Memo1->Lines->Add(pBstrHelpFile); Memo1->Lines->Add("-------------------------------------------------------"); SysFreeString(bstrName); if (i == 2) { edtGUID->Text = Sysutils::GUIDToString(ppTypeAttr->guid); btnToProgID->Click(); } } } pITypeLib->GetLibAttr(&tlibAttr); Memo1->Lines->Add("LIBID_xxxx"); Memo1->Lines->Add(Sysutils::GUIDToString(tlibAttr->guid)); pITypeLib->Release(); }
dephi new Guid
self.Caption:= TGUID.NewGuid.ToString;
self.Caption:= TGUID.NewGuid.ToString;
c++
CreateGUID
GUID aGUID;
CreateGUID(aGUID);
model.GID=GUIDToString(aGUID);