青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

yehao's Blog

VC++開發(fā)的ActiveX如何加入安全機(jī)制,避免IE中提示“在此頁上的ActiveX控件和本頁上的其他部分的交互可能不安全,你想允許這種交互嗎?”

轉(zhuǎn)自http://www.cnblogs.com/zdxster/archive/2011/01/27/1945868.html

在EOS6的項目中,如果采用VC++開發(fā)的ActiveX,那么第一次運行的時候,IE中就會提示,“在此頁上的ActiveX控件和本頁上的其他部分的交互可能不安全,你想允許這種交互嗎?”在網(wǎng)上找了很多資料,原理介紹的多,但是真正如何做,介紹的比較少,因此這里把實際的步驟一步一步的記錄下來了,供大家參考。

 

1.1 去除ActiveX訪問時的安全提示

當(dāng)ActiveX第一次被訪問時,會出現(xiàn)如下提示框:


 

這是IE瀏覽器的安全機(jī)制造成的,我們可以采用下面的步驟來去除這個提示信息:

1.1.1 CDemoCtl的頭文件.h中增加對objsave的引用

#include <objsafe.h> 

1.1.2 在其protected聲明區(qū)增加如下內(nèi)容
 1//去掉安全警告 BEGIN
 2
 3DECLARE_INTERFACE_MAP()
 4
 5BEGIN_INTERFACE_PART(ObjectSafety, IObjectSafety)
 6
 7STDMETHOD(GetInterfaceSafetyOptions)(REFIID riid, DWORD __RPC_FAR *pdwSupportedOptions, DWORD __RPC_FAR *pdwEnabledOptions);
 8
 9STDMETHOD(SetInterfaceSafetyOptions)(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions);
10
11END_INTERFACE_PART(ObjectSafety)
12
13//去掉安全警告 END


1.1.3 
CDemoCtl的實現(xiàn)類.cppIMPLEMENT_DYNCREATE(CActivexFirstCtrl, COleControl)這一行后增加如下內(nèi)容:
  1//去掉安全警告 BEGIN
  2BEGIN_INTERFACE_MAP(CAudioCommunicationCtrl, COleControl)
  3
  4    INTERFACE_PART(CAudioCommunicationCtrl, IID_IObjectSafety, ObjectSafety)
  5
  6END_INTERFACE_MAP()
  7
  8// Implementation of IObjectSafety
  9
 10STDMETHODIMP CAudioCommunicationCtrl::XObjectSafety::GetInterfaceSafetyOptions(
 11
 12    REFIID riid,
 13
 14    DWORD __RPC_FAR *pdwSupportedOptions,
 15
 16    DWORD __RPC_FAR *pdwEnabledOptions)
 17
 18{
 19
 20    METHOD_PROLOGUE_EX(CAudioCommunicationCtrl, ObjectSafety)
 21
 22        if (!pdwSupportedOptions || !pdwEnabledOptions)
 23
 24        {
 25
 26            return E_POINTER;
 27
 28        }

 29
 30        *pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA;
 31
 32        *pdwEnabledOptions = 0;
 33
 34        if (NULL == pThis->GetInterface(&riid))
 35
 36        {
 37
 38            TRACE("Requested interface is not supported.\n");
 39
 40            return E_NOINTERFACE;
 41
 42        }

 43
 44        // What interface is being checked out anyhow?
 45
 46        OLECHAR szGUID[39];
 47
 48        int i = StringFromGUID2(riid, szGUID, 39);
 49
 50        if (riid == IID_IDispatch)
 51
 52        {
 53
 54            // Client wants to know if object is safe for scripting
 55
 56            *pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER;
 57
 58            return S_OK;
 59
 60        }

 61
 62        else if (riid == IID_IPersistPropertyBag
 63
 64            || riid == IID_IPersistStreamInit
 65
 66            || riid == IID_IPersistStorage
 67
 68            || riid == IID_IPersistMemory)
 69
 70        {
 71
 72            // Those are the persistence interfaces COleControl derived controls support
 73
 74            // as indicated in AFXCTL.H
 75
 76            // Client wants to know if object is safe for initializing from persistent data
 77
 78            *pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_DATA;
 79
 80            return S_OK;
 81
 82        }

 83
 84        else
 85
 86        {
 87
 88            // Find out what interface this is, and decide what options to enable
 89
 90            TRACE("We didn't account for the safety of this interface, and it's one we support\n");
 91
 92            return E_NOINTERFACE;
 93
 94        }

 95
 96}

 97
 98STDMETHODIMP CAudioCommunicationCtrl::XObjectSafety::SetInterfaceSafetyOptions(
 99
100    REFIID riid,
101
102    DWORD dwOptionSetMask,
103
104    DWORD dwEnabledOptions)
105
106{
107
108    METHOD_PROLOGUE_EX(CAudioCommunicationCtrl, ObjectSafety)
109
110        OLECHAR szGUID[39];
111
112    // What is this interface anyway?
113
114    // We can do a quick lookup in the registry under HKEY_CLASSES_ROOT\Interface
115
116    int i = StringFromGUID2(riid, szGUID, 39);
117
118    if (0 == dwOptionSetMask && 0 == dwEnabledOptions)
119
120    {
121
122        // the control certainly supports NO requests through the specified interface
123
124        // so it"s safe to return S_OK even if the interface isn"t supported.
125
126        return S_OK;
127
128    }

129
130    // Do we support the specified interface?
131
132    if (NULL == pThis->GetInterface(&riid))
133
134    {
135
136        TRACE1("%s is not support.\n", szGUID);
137
138        return E_FAIL;
139
140    }

141
142    if (riid == IID_IDispatch)
143
144    {
145
146        TRACE("Client asking if it's safe to call through IDispatch.\n");
147
148            TRACE("In other words, is the control safe for scripting?\n");
149
150        if (INTERFACESAFE_FOR_UNTRUSTED_CALLER == dwOptionSetMask && INTERFACESAFE_FOR_UNTRUSTED_CALLER == dwEnabledOptions)
151
152        {
153
154            return S_OK;
155
156        }

157
158        else
159
160        {
161
162            return E_FAIL;
163
164        }

165
166    }

167
168    else if (riid == IID_IPersistPropertyBag
169
170        || riid == IID_IPersistStreamInit
171
172        || riid == IID_IPersistStorage
173
174        || riid == IID_IPersistMemory)
175
176    {
177
178        TRACE("Client asking if it's safe to call through IPersist*.\n");
179
180            TRACE("In other words, is the control safe for initializing from persistent data?\n");
181
182        if (INTERFACESAFE_FOR_UNTRUSTED_DATA == dwOptionSetMask && INTERFACESAFE_FOR_UNTRUSTED_DATA == dwEnabledOptions)
183
184        {
185
186            return NOERROR;
187
188        }

189
190        else
191
192        {
193
194            return E_FAIL;
195
196        }

197
198    }

199
200    else
201
202    {
203
204        TRACE1("We didn"t account for the safety of %s, and it"s one we support\n", szGUID);
205
206        return E_FAIL;
207
208    }

209
210}

211
212STDMETHODIMP_(ULONG) CAudioCommunicationCtrl::XObjectSafety::AddRef()
213
214{
215
216    METHOD_PROLOGUE_EX_(CAudioCommunicationCtrl, ObjectSafety)
217
218        return (ULONG)pThis->ExternalAddRef();
219
220}

221
222STDMETHODIMP_(ULONG) CAudioCommunicationCtrl::XObjectSafety::Release()
223
224{
225
226    METHOD_PROLOGUE_EX_(CAudioCommunicationCtrl, ObjectSafety)
227
228        return (ULONG)pThis->ExternalRelease();
229
230}

231
232STDMETHODIMP CAudioCommunicationCtrl::XObjectSafety::QueryInterface(
233
234    REFIID iid, LPVOID* ppvObj)
235
236{
237
238    METHOD_PROLOGUE_EX_(CAudioCommunicationCtrl, ObjectSafety)
239
240        return (HRESULT)pThis->ExternalQueryInterface(&iid, ppvObj);
241
242}

243
244//去掉安全警告 END


posted on 2011-07-04 11:33 厚積薄發(fā) 閱讀(4239) 評論(1)  編輯 收藏 引用 所屬分類: Windows編程

評論

# re: VC++開發(fā)的ActiveX如何加入安全機(jī)制,避免IE中提示“在此頁上的ActiveX控件和本頁上的其他部分的交互可能不安全,你想允許這種交互嗎?” 2012-09-17 22:46 王小亮

不錯的 。。

正是 想要 的  回復(fù)  更多評論   

導(dǎo)航

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

統(tǒng)計

常用鏈接

留言簿

隨筆分類

文章分類

文章檔案

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久国内| 亚洲国产美女| 韩国亚洲精品| 国产在线精品自拍| 在线观看三级视频欧美| 黄色成人av网站| 91久久久在线| 亚洲性图久久| 久久久午夜视频| 亚洲激情另类| 亚洲一区二区三区影院| 欧美一区二区三区久久精品茉莉花| 性欧美videos另类喷潮| 久久免费视频观看| 欧美日韩黄色大片| 国产午夜精品福利| 最新精品在线| 欧美在线日韩| 亚洲九九爱视频| 国产精品99久久久久久久久久久久| 夜夜嗨av一区二区三区四区| 亚洲欧美中日韩| 欧美大片免费观看在线观看网站推荐| 亚洲黄网站在线观看| 中文在线不卡| 女女同性女同一区二区三区91| 国产精品久久7| 亚洲精品乱码久久久久| 欧美在线一二三| 一本色道**综合亚洲精品蜜桃冫| 欧美一区二区三区婷婷月色| 欧美日韩国产va另类| 国内精品一区二区三区| 亚洲天天影视| 欧美国产日韩a欧美在线观看| 亚洲午夜国产一区99re久久 | 一本色道久久加勒比88综合| 欧美亚洲综合网| 欧美日韩亚洲网| 在线成人av| 久久国产乱子精品免费女 | 亚洲尤物视频网| 欧美电影在线观看完整版| 欧美一级艳片视频免费观看| 欧美深夜福利| 亚洲毛片av在线| 欧美福利网址| 久久蜜桃香蕉精品一区二区三区| 国产麻豆日韩| 欧美一区二区三区电影在线观看| 亚洲精品一区在线观看香蕉| 久久婷婷国产麻豆91天堂| 国产日韩亚洲欧美综合| 欧美一级久久久| 亚洲欧美日韩网| 国产精品三级视频| 亚洲欧美综合v| 亚洲一区观看| 国产欧美在线观看| 久久精品一区中文字幕| 午夜欧美不卡精品aaaaa| 国产麻豆午夜三级精品| 午夜在线a亚洲v天堂网2018| 亚洲永久免费av| 国产精品亚洲а∨天堂免在线| 亚洲一区二区av电影| 亚洲精品网站在线播放gif| 欧美国产精品| 一本一道久久综合狠狠老精东影业| 亚洲国产成人久久综合| 欧美福利网址| 亚洲天堂黄色| 香蕉久久国产| 亚洲国产成人在线播放| 亚洲福利视频一区二区| 欧美日韩第一区| 国产区在线观看成人精品| 先锋亚洲精品| 久久精品一区| 亚洲人体一区| 亚洲网站在线看| 黄色亚洲网站| 亚洲福利视频专区| 欧美色网一区二区| 久久精品日产第一区二区| 久久久久久久久蜜桃| 亚洲日本在线观看| 一区二区欧美日韩| 红桃视频成人| 日韩午夜精品视频| 国产色产综合色产在线视频| 毛片av中文字幕一区二区| 欧美激情视频在线免费观看 欧美视频免费一 | 午夜日韩av| 最近看过的日韩成人| 日韩视频免费观看高清在线视频 | 母乳一区在线观看| 亚洲综合大片69999| 久久精品视频一| 中日韩美女免费视频网址在线观看 | 久久精品一本| 欧美日产在线观看| 久久久久久尹人网香蕉| 欧美精品一区二区三区四区| 欧美专区第一页| 欧美日韩高清在线一区| 老鸭窝毛片一区二区三区| 欧美日韩精品一区| 欧美特黄视频| 欧美aⅴ99久久黑人专区| 欧美日韩dvd在线观看| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品av久久久久久麻豆网| 欧美多人爱爱视频网站| 国产无遮挡一区二区三区毛片日本| 夜夜嗨av一区二区三区中文字幕 | 亚洲在线视频网站| 久久性色av| 久久久久久久久久久成人| 欧美日韩一区二区精品| 欧美成人蜜桃| 久久精品中文字幕一区| 亚洲综合三区| 欧美激情视频网站| 欧美成年人在线观看| 国产亚洲精品福利| 在线亚洲一区二区| 91久久综合| 免费欧美在线视频| 欧美jizz19性欧美| 激情视频亚洲| 欧美亚洲一区二区在线观看| 欧美精品偷拍| 亚洲第一区在线| 亚洲高清电影| 久久综合亚州| 欧美大尺度在线观看| 韩国精品在线观看| 久久国产欧美精品| 另类亚洲自拍| 亚洲国产色一区| 欧美激情精品久久久六区热门| 亚洲第一区色| av成人激情| 欧美日韩一区二区在线| 亚洲另类春色国产| 亚洲一卡二卡三卡四卡五卡| 国产精品成人观看视频国产奇米| 一区二区日韩欧美| 欧美在线高清视频| 国产亚洲精品久久飘花| 久久久精品国产免费观看同学| 狂野欧美激情性xxxx欧美| 亚洲第一中文字幕在线观看| 理论片一区二区在线| 亚洲国产另类久久久精品极度| 日韩一级不卡| 国产欧美日韩伦理| 久久综合给合| 99精品福利视频| 久久久人成影片一区二区三区观看 | 亚洲欧美精品suv| 国产午夜精品理论片a级大结局 | 亚洲一区二区影院| 久久久综合激的五月天| 亚洲国产精品va在线看黑人动漫 | 伊人精品久久久久7777| 免费看av成人| 亚洲一区二区三区精品动漫| 久久综合精品国产一区二区三区| 亚洲乱码国产乱码精品精可以看| 国产精品v片在线观看不卡| 羞羞答答国产精品www一本| 欧美黄色aaaa| 久久aⅴ国产紧身牛仔裤| 亚洲电影毛片| 国产欧美日本一区二区三区| 蜜桃精品久久久久久久免费影院| 在线中文字幕一区| 亚洲高清毛片| 久久综合九色欧美综合狠狠| 亚洲图片自拍偷拍| 亚洲大胆视频| 性欧美精品高清| 99av国产精品欲麻豆| 麻豆成人在线观看| 亚洲一级在线观看| 亚洲黄色视屏| 国产综合激情| 国产目拍亚洲精品99久久精品| 欧美激情第8页| 欧美一区二区三区男人的天堂| 亚洲激情一区| 免费观看日韩| 久久国产99| 亚洲欧美美女| 亚洲一区二区高清视频| 亚洲三级电影全部在线观看高清| 国产在线高清精品| 国产精品伦一区|