VC++ 使用attributes定義接口

?

1.定義預處理命令_ATL_ATTRIBUTES

image

2.在一個全局的Cpp文件里面配置module的attribute

[module(dll, uuid = "{3845951F-15B8-4286-8E7D-E9D4F5C7B6CE}", name = "TestApp")]

3.定義接口

[object,uuid("9F414A8A-1D5E-4aff-A60E-CFD65155ABB6"),dual, helpstring("IGFCursorMgr Interface"),pointer_default(unique)
]
__interface IEmployee : IDispatch
{HRESULT DoWork(BSTR bstrTask);
};[coclass,default(IEmployee),threading(free),vi_progid("TXGF.CGFCoCursorMgr"),progid("TXGF.CGFCoCursorMgr.1"),version(1.0),uuid("20BB9542-E499-4618-9E2D-079A06FD99B1"),helpstring("CGFCoCursorMgr Class")
]
class ATL_NO_VTABLE CManager:public IEmployee
{
public:CManager(){//InternalAddRef();}DECLARE_PROTECT_FINAL_CONSTRUCT()HRESULT FinalConstruct(){return S_OK;}void FinalRelease(){}HRESULT DoWork(BSTR bstrTask){CComObject<CManager> * pObj = NULL;CComObject<CManager>::CreateInstance(&pObj);return S_OK;}
};

4.引用ATL命名空間

如遇編譯錯誤error C3358: 'IDispatchImpl': symbol not found

需要添加ATL的命名空間using namespace ATL;

?

關于使用的參考資料:http://msdn.microsoft.com/en-us/magazine/cc301337.aspx

????? The generated code in Figure 6 shows that the [coclass] attribute makes the compiler derive a class from CComObjectRootEx<> and this provides QueryInterface through the interface map. The compiler generates this map by looking at the interfaces that the class is derived from. If you want to add your own entries to this map, you can use the [com_interface_entry()] attribute. The parameter to this attribute is the COM_INTERFACE_ENTRY macro that you want to add to the top of the map. For example:

轉載于:https://www.cnblogs.com/Clingingboy/p/3407293.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/259207.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259207.shtml
英文地址,請注明出處:http://en.pswp.cn/news/259207.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

h3c 虛擬服務器 下一跳,H3CNE 312題和313題 直連路由靜態路由的下一跳問題

321.在MSR 路由器上看到路由表里有如下顯示&#xff1a; Destination/Mask Proto Pre Cost NextHop Interface 127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0 127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0 192.168.96.0/19 Direct 0 0 192.168.120.153 S6/0 那么關于目的地321.在MS…

C++成員變量的初始化順序問題

先來看兩道題&#xff1a; // count algorithm example #include <iostream> // std::cout #include <algorithm> // std::count #include <vector> // std::vector using namespace std; class A { public:A() { cout << "in A()&q…

Knockout.Js案例一Introduction

在這第一個教程中,您將體驗的一些基本知識構建的web UI Model-View-ViewModel使用knockout.js(MVVM)模式。案例1&#xff1a;添加:data-bind <p>First name: <strong data-bind"text:firstName">1</strong></p><p>Last name: <stro…

C#注冊表常用操作

1&#xff1a;加鍵 改值 Microsoft.Win32.RegistryKey Key Microsoft.Win32.Registry.CurrentUser.CreateSubKey( "Software\Microsoft\Internet Explorer\Main"); Key.SetValue( "Window Title" , value ); Key.Close(); …

谷歌瀏覽器外貿版_做外貿快兩個月,沒有單怎么辦?

Hello 大家好&#xff0c;我是Jack。今天給大家更新一篇在知乎看到的外貿問題&#xff1a;做外貿快兩個月&#xff0c;沒有單怎么辦?外貿這個話題在知乎算是小眾話題了&#xff0c;相比較于職場&#xff0c;英語學習&#xff0c;國際政治&#xff0c;IT等&#xff0c;這些話題…

React Native通信機制詳解

http://blog.cnbang.net/tech/2698/ React Native是facebook剛開源的框架&#xff0c;可以用javascript直接開發原生APP&#xff0c;先不說這個框架后續是否能得到大眾認可&#xff0c;單從源碼來說&#xff0c;這個框架源碼里有非常多的設計思想和實現方式值得學習&#xff0c…

C++11系列學習之四----auto

在哪些情況下要申明類型&#xff1a; 定義變量類型 函數返回值&#xff0c;函數參數 表達式返回變量類型 auto關鍵字原理 在定義變量的時候必須申明類型&#xff0c;c是強語言類型&#xff0c;在編譯階段需要知道類型&#xff0c;這樣的好處是程序效率更高&#xff0c;而…

windows 自動copy遠程服務器文件

net use h: \\123.45.67.000\T1dbbackup 123456/user:administrator ------遠程服務器IP123.45.67.000 。T1dbbackup&#xff1a;共享文件夾 。 h :映射到本機的盤符。 用戶名&#xff1a;administrator&#xff0c;密碼&#xff1a;123456copy h:\*.* f:\T1DB ------復…

eclipse 不能切換輸入法

按了AltShift鍵&#xff1f;再按一次把EN切換成CN&#xff0c;然后再CtrlShift就可以切換輸入法轉載于:https://www.cnblogs.com/jiayonghua/p/3413827.html

excel打開2個獨立窗口_謝楠稱女性獨立的不是錢是心 謝楠與吳京婚后生育2個兒子...

近日&#xff0c;在綜藝節目《幸福三重奏》 三日談妻子篇中&#xff0c;謝楠被問到如何看待獨立女性時&#xff0c;反問記者會不會問吳京同樣的問題&#xff1b;隨后回答道&#xff0c;女性獨立的不是錢&#xff0c;而是你的心&#xff1b;楠姐的回答超級霸氣了&#xff0c;你們…

C++11系列學習之五-------decltype

使用場景 在C中經常要用到很長的變量名&#xff0c;如果已經有變量和你將使用的變量是一個類型&#xff0c;即可使用decltype關鍵字 來申明一樣的類型變量。 decltype原理 返回現有變量類型&#xff0c;decltype是一個關鍵字&#xff0c;而不是一個函數&#xff0c;這有啥區別…

Linux學習 Unit 9

Unit9.openssh-server1.openssh-server功能&#xff1a;讓遠程主機可以通過網絡訪問sshd服務&#xff0c;開始一個安全shell2.客戶端連接方式ssh遠程主機用戶遠程主機ip[rootdesktop0 ~]# ssh root172.25.0.11The authenticity of host 172.25.0.11 (172.25.0.11) cant be esta…

2015年創業中遇到的技術問題:41-50

41.Bootstrap換行。col-md-10和col-md-2。這2個div按說應該在一行的&#xff0c;結果col-md-2換行了。看看樣式&#xff0c;發現有多余的“margin-left: 1px;"。42.Service實現類定義了一個“自動調度進行刷新”的方法。OverrideScheduled(cron "0 0/10 * * * ? &q…

KMP模板與講解

讀書筆記終于寫完了&#xff0c;寫一下我對KMP的理解。 KMP的思想就是盡量利用已經得到的信息&#xff0c;來降低時間復雜度&#xff0c;已經得到的信息存放在next數組里。算法確實很難理解&#xff0c;所以很難講解。。舉個例子來說吧。 設字符串是str[]&#xff0c;next[5] …

android 非root app 捕捉系統廣播_APP的生死之道

這篇文章主要介紹APP在安卓系統中是怎么被殺死的&#xff0c;按照怎樣的一個策略去釋放進程&#xff1b;同時介紹一些延長應用存活時間的方案&#xff0c;雖然這個在現在安卓系統上越來越難實現了&#xff0c;但是也是可以稍微了解下&#xff0c;主要也是通過這些hack的方案更好…

C++11系列學習之六-----for

前言C11這次的更新帶來了令很多C程序員期待已久的for range循環&#xff0c;每次看到javascript&#xff0c; lua里的for range&#xff0c;心想要是C能有多好&#xff0c;心里別提多酸了。這次C11不負眾望&#xff0c;再也不用羨慕別家人的for range了。使用場景ex1&#xff1…

ArcGIS Engine 10開發環境的一些常見問題(轉載)

轉自&#xff1a;http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid107612&extra&page1 許多版友在剛剛使用ArcGIS 10做開發的時候&#xff0c;都會遇到這樣那樣的問題。在擔任實習版主的這一個多月里&#xff0c;看到了這么幾個與開發環境相關的問題&#xff0c;重…

@value 靜態變量_面試官:為什么靜態方法不能調用非靜態方法和變量?

這個可能很多人之前學習jvm的時候都會遇到&#xff0c;屬于一個小問題&#xff0c;寫這篇文章的原因是我在看java相關的面試題目中遇到的&#xff0c;因此順手總結一下&#xff1a;一、例子我們先看效果&#xff1a;我們在靜態方法main中調用非靜態變量或者是方法都會報錯。我們…

SpringMVC連接多數據源配置

在spring-config-datasource.xml中配置&#xff1a; <ds:ibatis-config><ds:sql-map-clientid"sqlMapClient2"datasource-ref"riskBasicDataSource2"config-location"classpath:sqlmap-config.xml"/> </ds:ibatis-config> <…

Memcached 工作原理

http://hzp.iteye.com/blog/1872664Memcached處理的原子是每一個&#xff08;key&#xff0c;value&#xff09;對&#xff08;以下簡稱kv對&#xff09;&#xff0c;key會通過一個hash算法轉化成hash-key&#xff0c;便于查找、對比以及做到盡可能的散列。同時&#xff0c;mem…