OCX控制項避免彈出安全警告的類

2021-09-20 13:32:24 字數 2724 閱讀 4363

1.要加乙個標頭檔案:

#include

2.在控制項標頭檔案中加入:

1 declare_inte***ce_map()

2 begin_inte***ce_part(objectsafety, iobjectsafety)

3 stdmethod(getinte***cesafetyoptions)(refiid riid, dword __rpc_far *pdwsupportedoptions, dword __rpc_far *pdwenabledoptions);

4 stdmethod(setinte***cesafetyoptions)(refiid riid, dword dwoptionsetmask, dword dwenabledoptions);

5 end_inte***ce_part(objectsafety)

3.在控制項的cpp檔案中加入:

1 begin_inte***ce_map(cvp2pctrl, colecontrol)

2 inte***ce_part(cvp2pctrl, iid_iobjectsafety, objectsafety)

3 end_inte***ce_map()

4 // implementation of iobjectsafety

5 stdmethodimp cvp2pctrl::xobjectsafety::getinte***cesafetyoptions(

6 refiid riid,

7 dword __rpc_far *pdwsupportedoptions,

8 dword __rpc_far *pdwenabledoptions)

9 16

17 *pdwsupportedoptions = inte***cesafe_for_untrusted_caller | inte***cesafe_for_untrusted_data;

18 *pdwenabledoptions = 0;

19 20 if (null == pthis->getinte***ce(&riid))

21

25 26 // what inte***ce is being checked out anyhow?

27 olechar szguid[39];

28 int i = stringfromguid2(riid, szguid, 39);

29 30 if (riid == iid_idispatch)

31

36 else if (riid == iid_ipersistpropertybag

37 || riid == iid_ipersiststreaminit

38 || riid == iid_ipersiststorage

39 || riid == iid_ipersistmemory)

40

47 else

48

53 }

54 55 stdmethodimp cvp2pctrl::xobjectsafety::setinte***cesafetyoptions(

56 refiid riid,

57 dword dwoptionsetmask,

58 dword dwenabledoptions)

59 73

74 // do we support the specified inte***ce?

75 if (null == pthis->getinte***ce(&riid))

76

80 81 if (riid == iid_idispatch)

82

89 else

90

93 }

94 else if (riid == iid_ipersistpropertybag

95 || riid == iid_ipersiststreaminit

96 || riid == iid_ipersiststorage

97 || riid == iid_ipersistmemory)

98

106 else

107

110 }

111 else

112

116 }

117

118 stdmethodimp_(ulong) cvp2pctrl::xobjectsafety::addref()

119

123

124 stdmethodimp_(ulong) cvp2pctrl::xobjectsafety::release()

125

//ok!不會再彈出那個「與activex控制項互動不安全「的對話方塊了~~~

//其中cvp2pctrl全部要換成你的控制項的類名

編寫瀏覽器不彈出警告的ActiveX控制項

編寫瀏覽器不彈出警告的activex控制項 我們在編寫activex控制項時,如果用在瀏覽器中,經常都會彈出現在執行的指令碼不安全的提示,如果給客戶使用,將會帶來極大不便。按照msdn的介紹通常有兩種一種是實現iobjectsafe介面,一種是通過修改登錄檔的方法。一般如果用atl開發activex...

編寫瀏覽器不彈出警告的ActiveX控制項

編寫瀏覽器不彈出警告的activex控制項 我們在編寫activex控制項時,如果用在瀏覽器中,經常都會彈出現在執行的指令碼不安全的提示,如果給客戶使用,將會帶來極大不便。按照msdn的介紹通常有兩種一種是實現iobjectsafe介面,一種是通過修改登錄檔的方法。一般如果用atl開發activex...

編寫瀏覽器不彈出警告的ActiveX控制項

編寫瀏覽器不彈出警告的activex控制項 我們在編寫activex控制項時,如果用在瀏覽器中,經常都會彈出現在執行的指令碼不安全的提示,如果給客戶使用,將會帶來極大不便。按照msdn的介紹通常有兩種一種是實現iobjectsafe介面,一種是通過修改登錄檔的方法。一般如果用atl開發activex...