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();
    }
View Code

 

dephi new Guid

self.Caption:= TGUID.NewGuid.ToString;

self.Caption:= TGUID.NewGuid.ToString;

 

c++

 CreateGUID

    GUID aGUID;
    CreateGUID(aGUID);
    model.GID=GUIDToString(aGUID);

posted on 2015-06-25 17:56  lypzxy  阅读(188)  评论(0)    收藏  举报