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

codeArt

codeArt

BEGIN_COM_MAP和END_COM_MAP

  1 #define BEGIN_COM_MAP(x) public: \
  2     typedef x _ComMapClass; \
  3     static HRESULT WINAPI _Cache(void* pv, REFIID iid, void** ppvObject, DWORD_PTR dw) throw()\
  4 {\
  5     _ComMapClass* p = (_ComMapClass*)pv;\
  6     p->Lock();\
  7     HRESULT hRes = E_FAIL; \
  8     __try \
  9 { \
 10     hRes = ATL::CComObjectRootBase::_Cache(pv, iid, ppvObject, dw);\
 11 } \
 12     __finally \
 13 { \
 14     p->Unlock();\
 15 } \
 16     return hRes;\
 17 }\
 18     IUnknown* _GetRawUnknown() throw() \
 19 { ATLASSERT(_GetEntries()[0].pFunc == _ATL_SIMPLEMAPENTRY); return (IUnknown*)((INT_PTR)this+_GetEntries()->dw); } \
 20     _ATL_DECLARE_GET_UNKNOWN(x)\
 21     HRESULT _InternalQueryInterface(REFIID iid, void** ppvObject) throw() \
 22 return InternalQueryInterface(this, _GetEntries(), iid, ppvObject); } \
 23     const static ATL::_ATL_INTMAP_ENTRY* WINAPI _GetEntries() throw() { \
 24     static const ATL::_ATL_INTMAP_ENTRY _entries[] = { DEBUG_QI_ENTRY(x)
 25 
 26 #ifdef _ATL_DEBUG
 27 #define DEBUG_QI_ENTRY(x) \
 28 {NULL, \
 29     (DWORD_PTR)_T(#x), \
 30     (ATL::_ATL_CREATORARGFUNC*)0},
 31 #else
 32 #define DEBUG_QI_ENTRY(x)
 33 #endif //_ATL_DEBUG
 34 
 35 #define COM_INTERFACE_ENTRY_IMPL(x)\
 36     COM_INTERFACE_ENTRY_IID(_ATL_IIDOF(x), x##Impl<_ComMapClass>)
 37 
 38 #define _ATL_IIDOF(x) __uuidof(x)
 39 
 40 #define COM_INTERFACE_ENTRY_IID(iid, x)\
 41 {&iid,\
 42     offsetofclass(x, _ComMapClass),\
 43     _ATL_SIMPLEMAPENTRY},
 44 
 45 #define offsetofclass(base, derived) ((DWORD_PTR)(static_cast<base*>((derived*)_ATL_PACKING))-_ATL_PACKING)
 46 
 47 #define _ATL_SIMPLEMAPENTRY ((ATL::_ATL_CREATORARGFUNC*)1)
 48 
 49 #define COM_INTERFACE_ENTRY(x)\
 50 {&_ATL_IIDOF(x), \
 51     offsetofclass(x, _ComMapClass), \
 52     _ATL_SIMPLEMAPENTRY},
 53 
 54 #define END_COM_MAP() \
 55     __if_exists(_GetAttrEntries) {{NULL, (DWORD_PTR)_GetAttrEntries, _ChainAttr }, }\
 56 {NULL, 00}}; return &_entries[1];} \
 57     virtual ULONG STDMETHODCALLTYPE AddRef( voidthrow() = 0; \
 58     virtual ULONG STDMETHODCALLTYPE Release( voidthrow() = 0; \
 59     STDMETHOD(QueryInterface)(REFIID, void**throw() = 0;
 60 #else
 61 #define END_COM_MAP() \
 62     __if_exists(_GetAttrEntries) {{NULL, (DWORD_PTR)_GetAttrEntries, _ChainAttr }, }\
 63 {NULL, 00}}; return _entries;} \
 64     virtual ULONG STDMETHODCALLTYPE AddRef( voidthrow() = 0; \
 65     virtual ULONG STDMETHODCALLTYPE Release( voidthrow() = 0; \
 66     STDMETHOD(QueryInterface)(REFIID, void**throw() = 0;
 67 #endif // _ATL_DEBUG
 68 
 69 
 70 //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 71 class d
 72 {
 73 public:
 74     d(){}
 75     typedef x _ComMapClass;
 76     static HRESULT WINAPI _Cache(void* pv, REFIID iid, void** ppvObject, DWORD_PTR dw) throw()\
 77     {
 78         _ComMapClass* p = (_ComMapClass*)pv;
 79         p->Lock();
 80         HRESULT hRes = E_FAIL;
 81         __try
 82         {
 83             hRes = ATL::CComObjectRootBase::_Cache(pv, iid, ppvObject, dw);
 84         }
 85         __finally
 86         {
 87             p->Unlock();
 88         }
 89         return hRes;
 90     }
 91     IUnknown* _GetRawUnknown() throw()
 92     { ATLASSERT(_GetEntries()[0].pFunc == _ATL_SIMPLEMAPENTRY); return (IUnknown*)((INT_PTR)this+_GetEntries()->dw); }
 93     _ATL_DECLARE_GET_UNKNOWN(x)
 94         HRESULT _InternalQueryInterface(REFIID iid, void** ppvObject) throw()
 95     { return InternalQueryInterface(this, _GetEntries(), iid, ppvObject); }
 96     const static ATL::_ATL_INTMAP_ENTRY* WINAPI _GetEntries() throw()
 97     {
 98         static const ATL::_ATL_INTMAP_ENTRY _entries[] =
 99         {
100             {NULL, (DWORD_PTR)_T(#x), (ATL::_ATL_CREATORARGFUNC*)0},
101             {&iid, ((DWORD_PTR)(static_cast<base*>((derived*)_ATL_PACKING))-_ATL_PACKING), ((ATL::_ATL_CREATORARGFUNC*)1)},
102             {&__uuidof(x), ((DWORD_PTR)(static_cast<base*>((derived*)_ATL_PACKING))-_ATL_PACKING), ((ATL::_ATL_CREATORARGFUNC*)1)},
103             __if_exists(_GetAttrEntries) {{NULL, (DWORD_PTR)_GetAttrEntries, _ChainAttr }, }
104             {NULL, 00}
105         };
106         return &_entries[1];
107     }
108     virtual ULONG STDMETHODCALLTYPE AddRef( voidthrow() = 0;
109     virtual ULONG STDMETHODCALLTYPE Release( voidthrow() = 0;
110     STDMETHOD(QueryInterface)(REFIID, void**throw() = 0;
111 }

posted on 2010-07-05 15:45 codeArt 閱讀(2369) 評論(0)  編輯 收藏 引用 所屬分類: COM

<2010年8月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

導航

統(tǒng)計

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

文章檔案

編程與開源

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产一区二区三区四区在线观看 | 欧美精品电影在线| 午夜精品理论片| 香蕉久久国产| 久久成人免费| 久久久久国产精品人| 久久精品视频导航| 欧美电影美腿模特1979在线看| 免费一区二区三区| 欧美日韩国产成人在线91| 欧美午夜一区二区| 国产情人节一区| 影院欧美亚洲| 日韩一区二区精品在线观看| 亚洲深夜影院| 久久精品亚洲乱码伦伦中文 | 日韩午夜在线| 亚洲在线一区| 久久婷婷国产综合国色天香| 免费成人在线视频网站| 欧美亚日韩国产aⅴ精品中极品| 国产精品久久久久久久久免费樱桃| 国产欧美一区二区视频| 亚洲黄色在线看| 亚洲自拍电影| 欧美粗暴jizz性欧美20| 亚洲午夜未删减在线观看| 久久乐国产精品| 国产精品久久久久久久久| 在线播放豆国产99亚洲| 亚洲欧美日本日韩| 伊人久久久大香线蕉综合直播| 99综合视频| 久久综合狠狠综合久久综合88| 欧美精品自拍| 黄色成人小视频| 亚洲永久网站| 欧美国产丝袜视频| 久久大香伊蕉在人线观看热2| 欧美日韩国产综合网| 在线看片日韩| 欧美在线亚洲一区| 中日韩在线视频| 欧美精彩视频一区二区三区| 黄色欧美日韩| 久久国产欧美| 亚洲图片你懂的| 欧美人交a欧美精品| 狠狠色狠狠色综合日日tαg| 午夜电影亚洲| 亚洲美女精品成人在线视频| 另类av一区二区| 伊人婷婷欧美激情| 久久久一区二区| 西瓜成人精品人成网站| 国产精品久久久久久久久果冻传媒 | 开心色5月久久精品| 国产欧美综合在线| 欧美一级专区免费大片| 一区二区免费在线播放| 欧美日韩精品在线观看| 日韩一区二区电影网| 亚洲激情成人| 免费观看成人www动漫视频| 国内精品美女在线观看| 久久蜜臀精品av| 久久久久欧美| 亚洲国产精品久久久久婷婷884 | 国产乱码精品| 欧美一区二区视频在线观看2020| 中日韩高清电影网| 国产精品美女www爽爽爽视频| 亚洲女人av| 午夜精品美女久久久久av福利| 国产亚洲高清视频| 欧美成人高清| 欧美激情精品久久久久久久变态| 一本色道88久久加勒比精品 | 久久麻豆一区二区| 裸体一区二区| 这里只有精品视频| 亚洲一区久久| 国产综合av| 最新成人av在线| 亚洲国产日韩精品| 最新亚洲一区| 国产精品狠色婷| 久久久成人网| 欧美成年视频| 亚洲综合日韩在线| 欧美在线亚洲综合一区| 亚洲国产视频a| 9久草视频在线视频精品| 国产精品一区2区| 欧美a级片网| 欧美视频一区二区在线观看| 久久九九国产| 欧美日韩国产大片| 久久精品国产综合| 欧美日韩第一区| 久久久久久久网| 欧美极品在线视频| 久久久亚洲国产美女国产盗摄| 欧美日本一区| 久热精品视频在线观看| 欧美日韩精品系列| 裸体一区二区三区| 国产精品久久波多野结衣| 久久一区二区三区国产精品 | 亚洲国产成人高清精品| 国产精品亚洲一区二区三区在线| 欧美chengren| 国产欧美日韩视频一区二区| 欧美激情一区二区三区蜜桃视频| 国产精品每日更新| 亚洲品质自拍| 亚洲福利国产| 久久爱www久久做| 亚洲制服少妇| 欧美美女福利视频| 欧美国产日本高清在线| 国产一区二区毛片| 正在播放日韩| 在线天堂一区av电影| 免费在线观看成人av| 老司机成人网| 国产综合色产| 欧美亚洲色图校园春色| 亚洲欧美另类综合偷拍| 欧美视频四区| aⅴ色国产欧美| 在线视频亚洲一区| 欧美日韩精品免费观看| 亚洲欧洲日本在线| 亚洲免费观看视频| 欧美激情第4页| 亚洲人成毛片在线播放| 亚洲精品社区| 欧美区在线观看| 一区二区三区国产在线观看| 一区二区三区免费在线观看| 欧美精品三区| 这里只有精品丝袜| 性欧美video另类hd性玩具| 欧美三级视频在线| 一区二区三区欧美成人| 亚洲欧洲av一区二区| 国产精品夜夜夜| 激情婷婷久久| 久久se精品一区二区| 亚洲精品乱码久久久久久久久| 久久婷婷亚洲| 欧美大片在线看免费观看| 亚洲高清视频一区| 欧美成人精品1314www| 亚洲激情亚洲| 亚洲一品av免费观看| 欧美小视频在线观看| 亚洲视频在线观看视频| 久久爱www.| 亚洲第一精品夜夜躁人人爽| 欧美 日韩 国产 一区| 亚洲精品一品区二品区三品区| 亚洲综合999| 狠狠综合久久| 欧美日韩国产黄| 校园春色国产精品| 亚洲成色777777女色窝| 在线综合亚洲| 国产综合香蕉五月婷在线| 免费观看日韩av| 亚洲一级黄色片| 亚洲电影欧美电影有声小说| 亚洲一区在线观看免费观看电影高清 | 亚洲欧美成aⅴ人在线观看| 国产日韩欧美一区在线| 老牛嫩草一区二区三区日本| 亚洲精品免费一二三区| 欧美在线三级| 99riav1国产精品视频| 国产精品一区视频| 免费精品99久久国产综合精品| 亚洲影院高清在线| 欧美激情在线有限公司| 欧美一区二区三区四区高清 | 亚洲精品一区二| 国产精品夜夜夜| 欧美激情精品久久久六区热门| 亚洲欧美日韩一区二区| 亚洲国产天堂网精品网站| 欧美一区二区网站| 91久久亚洲| 国模精品一区二区三区色天香| 欧美日韩a区| 久久一区国产| 欧美一区二区高清| 这里只有精品视频在线| 亚洲国产一区在线观看| 久久婷婷蜜乳一本欲蜜臀| 亚洲在线一区|