亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mycom.h

?? pe exe packer (must use vc2005 to compile)
?? H
字號:
// MyCom.h

#ifndef __MYCOM_H
#define __MYCOM_H

#include "MyWindows.h"

#define RINOK(x) { HRESULT __result_ = (x); if(__result_ != S_OK) return __result_; }

template <class T>
class CMyComPtr
{
  T* _p;
public:
  // typedef T _PtrClass;
  CMyComPtr() { _p = NULL;}
  CMyComPtr(T* p) {if ((_p = p) != NULL) p->AddRef(); }
  CMyComPtr(const CMyComPtr<T>& lp)
  {
    if ((_p = lp._p) != NULL)
      _p->AddRef();
  }
  ~CMyComPtr() { if (_p) _p->Release(); }
  void Release() { if (_p) { _p->Release(); _p = NULL; } }
  operator T*() const {  return (T*)_p;  }
  // T& operator*() const {  return *_p; }
  T** operator&() { return &_p; }
  T* operator->() const { return _p; }
  T* operator=(T* p) 
  { 
    if (p != 0)
      p->AddRef();
    if (_p) 
      _p->Release();
    _p = p;
    return p;
  }
  T* operator=(const CMyComPtr<T>& lp) { return (*this = lp._p); }
  bool operator!() const { return (_p == NULL); }
  // bool operator==(T* pT) const {  return _p == pT; }
  // Compare two objects for equivalence
  void Attach(T* p2)
  {
    Release();
    _p = p2;
  }
  T* Detach()
  {
    T* pt = _p;
    _p = NULL;
    return pt;
  }
  #ifdef _WIN32
  HRESULT CoCreateInstance(REFCLSID rclsid, REFIID iid, LPUNKNOWN pUnkOuter = NULL, DWORD dwClsContext = CLSCTX_ALL)
  {
    return ::CoCreateInstance(rclsid, pUnkOuter, dwClsContext, iid, (void**)&_p);
  }
  #endif
  /*
  HRESULT CoCreateInstance(LPCOLESTR szProgID, LPUNKNOWN pUnkOuter = NULL, DWORD dwClsContext = CLSCTX_ALL)
  {
    CLSID clsid;
    HRESULT hr = CLSIDFromProgID(szProgID, &clsid);
    ATLASSERT(_p == NULL);
    if (SUCCEEDED(hr))
      hr = ::CoCreateInstance(clsid, pUnkOuter, dwClsContext, __uuidof(T), (void**)&_p);
    return hr;
  }
  */
  template <class Q>
  HRESULT QueryInterface(REFGUID iid, Q** pp) const
  {
    return _p->QueryInterface(iid, (void**)pp);
  }
};

//////////////////////////////////////////////////////////

class CMyComBSTR
{
public:
  BSTR m_str;
  CMyComBSTR() { m_str = NULL; }
  CMyComBSTR(LPCOLESTR pSrc) {  m_str = ::SysAllocString(pSrc);  }
  // CMyComBSTR(int nSize) { m_str = ::SysAllocStringLen(NULL, nSize); }
  // CMyComBSTR(int nSize, LPCOLESTR sz) { m_str = ::SysAllocStringLen(sz, nSize);  }
  CMyComBSTR(const CMyComBSTR& src) { m_str = src.MyCopy(); }
  /*
  CMyComBSTR(REFGUID src)
  {
    LPOLESTR szGuid;
    StringFromCLSID(src, &szGuid);
    m_str = ::SysAllocString(szGuid);
    CoTaskMemFree(szGuid);
  }
  */
  ~CMyComBSTR() { ::SysFreeString(m_str); }
  CMyComBSTR& operator=(const CMyComBSTR& src)
  {
    if (m_str != src.m_str)
    {
      if (m_str)
        ::SysFreeString(m_str);
      m_str = src.MyCopy();
    }
    return *this;
  }
  CMyComBSTR& operator=(LPCOLESTR pSrc)
  {
    ::SysFreeString(m_str);
    m_str = ::SysAllocString(pSrc);
    return *this;
  }
  unsigned int Length() const { return ::SysStringLen(m_str); }
  operator BSTR() const { return m_str; }
  BSTR* operator&() { return &m_str; }
  BSTR MyCopy() const 
  { 
    int byteLen = ::SysStringByteLen(m_str);
    BSTR res = ::SysAllocStringByteLen(NULL, byteLen);
    memmove(res, m_str, byteLen);
    return res;
  }
  void Attach(BSTR src) {  m_str = src; }
  BSTR Detach()
  {
    BSTR s = m_str;
    m_str = NULL;
    return s;
  }
  void Empty()
  {
    ::SysFreeString(m_str);
    m_str = NULL;
  }
  bool operator!() const {  return (m_str == NULL); }
};


//////////////////////////////////////////////////////////

class CMyUnknownImp
{
public:
  ULONG __m_RefCount;
  CMyUnknownImp(): __m_RefCount(0) {}
};

#define MY_QUERYINTERFACE_BEGIN STDMETHOD(QueryInterface) \
    (REFGUID iid, void **outObject) { 

#define MY_QUERYINTERFACE_ENTRY(i) if (iid == IID_ ## i) \
    { *outObject = (void *)(i *)this; AddRef(); return S_OK; }

#define MY_QUERYINTERFACE_END return E_NOINTERFACE; }

#define MY_ADDREF_RELEASE \
STDMETHOD_(ULONG, AddRef)() { return ++__m_RefCount; } \
STDMETHOD_(ULONG, Release)() { if (--__m_RefCount != 0)  \
  return __m_RefCount; delete this; return 0; }

#define MY_UNKNOWN_IMP_SPEC(i) \
  MY_QUERYINTERFACE_BEGIN \
  i \
  MY_QUERYINTERFACE_END \
  MY_ADDREF_RELEASE


#define MY_UNKNOWN_IMP STDMETHOD(QueryInterface)(REFGUID, void **) { \
  MY_QUERYINTERFACE_END \
  MY_ADDREF_RELEASE

#define MY_UNKNOWN_IMP1(i) MY_UNKNOWN_IMP_SPEC( \
  MY_QUERYINTERFACE_ENTRY(i) \
  )

#define MY_UNKNOWN_IMP2(i1, i2) MY_UNKNOWN_IMP_SPEC( \
  MY_QUERYINTERFACE_ENTRY(i1) \
  MY_QUERYINTERFACE_ENTRY(i2) \
  )

#define MY_UNKNOWN_IMP3(i1, i2, i3) MY_UNKNOWN_IMP_SPEC( \
  MY_QUERYINTERFACE_ENTRY(i1) \
  MY_QUERYINTERFACE_ENTRY(i2) \
  MY_QUERYINTERFACE_ENTRY(i3) \
  )

#define MY_UNKNOWN_IMP4(i1, i2, i3, i4) MY_UNKNOWN_IMP_SPEC( \
  MY_QUERYINTERFACE_ENTRY(i1) \
  MY_QUERYINTERFACE_ENTRY(i2) \
  MY_QUERYINTERFACE_ENTRY(i3) \
  MY_QUERYINTERFACE_ENTRY(i4) \
  )

#define MY_UNKNOWN_IMP5(i1, i2, i3, i4, i5) MY_UNKNOWN_IMP_SPEC( \
  MY_QUERYINTERFACE_ENTRY(i1) \
  MY_QUERYINTERFACE_ENTRY(i2) \
  MY_QUERYINTERFACE_ENTRY(i3) \
  MY_QUERYINTERFACE_ENTRY(i4) \
  MY_QUERYINTERFACE_ENTRY(i5) \
  )

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费亚洲电影在线| 亚洲色图视频网| 日韩极品在线观看| 欧美日韩一卡二卡三卡| 亚洲国产欧美在线| 日韩一区二区不卡| 国产在线乱码一区二区三区| 久久美女艺术照精彩视频福利播放| jlzzjlzz亚洲日本少妇| 国产精品每日更新在线播放网址| 中文字幕一区二区三区乱码在线 | 国产一区二区毛片| 欧美成人欧美edvon| 国产精品自拍在线| 亚洲欧美中日韩| 欧美视频精品在线观看| 另类小说一区二区三区| 国产精品午夜在线观看| 色婷婷综合久久久久中文一区二区 | 国产一区二区视频在线播放| 国产精品免费aⅴ片在线观看| 婷婷久久综合九色综合绿巨人 | 亚洲精品日韩一| 欧美日韩你懂得| 久久精品国产亚洲高清剧情介绍| 欧美天堂亚洲电影院在线播放| 久久久美女毛片| 91免费看`日韩一区二区| 午夜免费欧美电影| 国产色爱av资源综合区| 在线免费观看一区| 日韩av在线免费观看不卡| 国产视频一区不卡| 91精品国产一区二区| 国产成人av网站| 日韩精品视频网| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 另类成人小视频在线| 亚洲欧洲av在线| 日韩三级视频在线看| 色综合av在线| 精品一区二区三区影院在线午夜| 欧美群妇大交群的观看方式| 国产91综合一区在线观看| 日韩vs国产vs欧美| 一卡二卡欧美日韩| 国产嫩草影院久久久久| 欧美裸体一区二区三区| 成人精品国产一区二区4080| 奇米综合一区二区三区精品视频| 538在线一区二区精品国产| 国产高清无密码一区二区三区| 26uuu国产电影一区二区| 欧美人与性动xxxx| 一本一本大道香蕉久在线精品| 日韩久久一区二区| 日本一区二区综合亚洲| 精品处破学生在线二十三| 欧美精品三级在线观看| 91女人视频在线观看| 粉嫩av一区二区三区在线播放| 亚洲视频在线一区二区| 精品成人在线观看| 欧美一级xxx| 欧美狂野另类xxxxoooo| 欧美日韩在线三级| 在线亚洲+欧美+日本专区| av一区二区三区四区| 国产大片一区二区| 国产一区在线视频| 狠狠色丁香九九婷婷综合五月| 国产精品入口麻豆九色| 欧美韩国日本综合| 国产婷婷色一区二区三区在线| 99久久国产综合精品女不卡| 国产超碰在线一区| 国产99久久久国产精品潘金 | 国产成人aaa| 成人一级视频在线观看| 国产成人av资源| 成人黄色一级视频| av中文一区二区三区| 成人av电影免费在线播放| av电影在线观看不卡| 94-欧美-setu| 欧美色视频在线观看| 欧美日韩午夜影院| 7777精品伊人久久久大香线蕉| 豆国产96在线|亚洲| 成人高清视频在线| 日本道色综合久久| 欧美女孩性生活视频| 91麻豆精品91久久久久同性| 日韩三级免费观看| 久久综合av免费| 国产精品乱码一区二区三区软件| 欧美一区二区在线不卡| 欧美mv和日韩mv国产网站| 久久久久青草大香线综合精品| 91成人在线观看喷潮| 制服.丝袜.亚洲.中文.综合| 精品免费视频一区二区| 国产精品无遮挡| 亚洲综合一区二区三区| 麻豆视频一区二区| 成人免费高清在线| 欧美日韩的一区二区| 欧美精品一区二区高清在线观看| 欧美日韩不卡在线| 欧美电影免费观看完整版| 国产精品美女久久久久aⅴ国产馆| 欧美一区二区三区在线电影| 久久中文娱乐网| 亚洲免费高清视频在线| 美美哒免费高清在线观看视频一区二区| 亚洲精品国产高清久久伦理二区| 国产欧美精品日韩区二区麻豆天美| 制服丝袜av成人在线看| 国产蜜臀av在线一区二区三区| 91精品久久久久久久91蜜桃| 国产亚洲欧洲一区高清在线观看| 欧美精品一级二级三级| 久久精品视频免费| 一区二区免费在线播放| 韩国成人在线视频| 色婷婷av一区| 久久亚洲捆绑美女| 亚洲观看高清完整版在线观看| 亚洲激情在线激情| 国产最新精品精品你懂的| aa级大片欧美| 欧美精品一区二区在线观看| 亚洲精品v日韩精品| 国产精品白丝jk白祙喷水网站| 国产传媒欧美日韩成人| 欧美电影在哪看比较好| 中文字幕永久在线不卡| 精品亚洲国产成人av制服丝袜| 免费一级欧美片在线观看| 成人午夜激情片| 精品少妇一区二区三区免费观看 | 日韩美女主播在线视频一区二区三区| 欧美日韩视频第一区| 国产日韩v精品一区二区| 青青草成人在线观看| 欧美性感一区二区三区| 国产精品丝袜黑色高跟| 久久精品国产精品青草| 欧美精品 日韩| 亚洲夂夂婷婷色拍ww47| av在线不卡观看免费观看| 久久久高清一区二区三区| 蜜桃一区二区三区在线观看| 欧美三级日韩三级| 亚洲欧美日本韩国| 91免费观看在线| 中文字幕在线观看一区二区| 丁香婷婷综合色啪| 久久精品人人做| 国产河南妇女毛片精品久久久| 色婷婷亚洲精品| 国产精品福利一区| 高清国产一区二区| 中文字幕久久午夜不卡| 国产成人福利片| 国产精品久久久久一区| 成人高清免费观看| 欧美高清一级片在线观看| 高清久久久久久| 国产精品福利电影一区二区三区四区| 亚洲精品一二三区| 一本高清dvd不卡在线观看| 综合分类小说区另类春色亚洲小说欧美 | 国产精品99久久不卡二区| 精品午夜久久福利影院| 色综合久久久网| 久久美女高清视频| 国产一区二区视频在线| 国产午夜精品美女毛片视频| 激情另类小说区图片区视频区| 成人免费视频一区| 中文字幕一区日韩精品欧美| 日本欧美一区二区三区乱码| 欧美激情一区在线| 宅男在线国产精品| 成人福利视频网站| 日韩电影在线一区二区| 国产精品人成在线观看免费| 欧美高清视频在线高清观看mv色露露十八| 1024精品合集| 精品久久久三级丝袜| 91麻豆精品秘密| 精品一区二区日韩| 亚洲午夜激情av| 亚洲国产高清不卡| 91精品国模一区二区三区| 97久久精品人人爽人人爽蜜臀| 亚洲男同性恋视频| 日韩免费看的电影| 欧美视频日韩视频在线观看|