1. 程式人生 > >自己寫個activex控制元件,如何知道他的classid(轉載)

自己寫個activex控制元件,如何知道他的classid(轉載)

在網頁裡用的時候需要知道他的classid
我在程式碼中看到有

const GUID CDECL BASED_CODE _tlid =
    { 0x89201950, 0x2CAC, 0x4CF7, { 0x99, 0x8, 0x73, 0x38, 0x61, 0x41, 0xEF, 0xD2 } };

這個,可別人的都是10進位制的啊?

 

複製程式碼
#include <olectl.h>
 #include <idispids.h>

 [ uuid(89201950-2CAC-4CF7-9908-73386141EFD2), version(1.0),
   helpfile("activex.hlp"),
   helpstring("activex ActiveX Control module"),
   control ]
 library activexLib
 {
 importlib(STDOLE_TLB);

 //  Primary dispatch interface for CactivexCtrl

 [ uuid(88F1FDE7-7BD4-48FD-9D0C-6C2AEA01D7FC),
   helpstring("Dispatch interface for activex Control")]
 dispinterface _Dactivex
 {
 properties:
 methods:

 [id(DISPID_ABOUTBOX)] void AboutBox();
 };

 //  Event dispatch interface for CactivexCtrl

 [ uuid(8DE3C33B-2B0B-4669-A636-B6FD893DF39F),
   helpstring("Event interface for activex Control") ]
 dispinterface _DactivexEvents
 {
 properties:
 //  Event interface has no properties

 methods:
 };

 //  Class information for CactivexCtrl

 [ uuid(5161E46C-C157-4BC7-9DB7-7597617722F0),
   helpstring("activex Control"), control ]
 coclass activex
 {
 [default] dispinterface _Dactivex;
 [default, source] dispinterface _DactivexEvents;
 };

 };
複製程式碼

這麼多 哪個才是?

 

回答:

[ uuid(5161E46C-C157-4BC7-9DB7-7597617722F0),
  helpstring("activex Control"), control ]
coclass activex
-----------------------------------
5161E46C-C157-4BC7-9DB7-7597617722F0這個就是,其實就是C++ MFC專案中生成的idl檔案中的最後一個GUID

 

然後在web中呼叫如下,即可:

<object id="activex" classid="clsid:5161E46C-C157-4BC7-9DB7-7597617722F0"></object>

 

原帖地址