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

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

?? utils.h

?? VB Script腳本引擎及例子程序
?? H
字號:
#ifndef UTILS_H
#define UTILS_H

//-----------------------------------------------------------------------------
// Includes

#include <iostream.h>

//-----------------------------------------------------------------------------
// macro which returns the number of elements in an array

#undef ELEMENTS
#define ELEMENTS(array) (sizeof(array)/sizeof(array[0]))

//-----------------------------------------------------------------------------
// macro to query a COM interface

#undef QUERY_INTERFACE
#define QUERY_INTERFACE(pUnknown, iid, pInterface) \
pUnknown->QueryInterface(IID_##iid, reinterpret_cast<void**>(&pInterface))

//-----------------------------------------------------------------------------
// macro to conditionally release a COM interface

#undef RELEASE
#define RELEASE(pInterface) if (pInterface != NULL) { pInterface->Release(); pInterface = NULL; }

//-----------------------------------------------------------------------------
// macro to conditionally release (unref()) an OpenInventor node

#undef RELEASE_NODE
#define RELEASE_NODE(pNode) if (pNode != NULL) { pNode->unref(); pNode = NULL; }

//-----------------------------------------------------------------------------
// macro to safely call a COM interface method

#undef STDCOMCALL
#define STDCOMCALL(pInterface, method) \
	(pInterface != NULL ? pInterface->method : E_NOINTERFACE); \
	ASSERT(pInterface != NULL)

//-----------------------------------------------------------------------------
// macro which returns a dereferenced "this" pointer

#undef self
#define self (*this)

//-----------------------------------------------------------------------------
// DEBUG Helper Macros

#ifdef _DEBUG
#  define DBPRINT(msg) afxDump << msg << "\n"
#else
#  define DBPRINT(msg)
#endif

#undef MESSAGE_BOX
#define MESSAGE_BOX(msg) \
{ \
  TRACE msg; TRACE("\n");\
  CString strMsg; \
  strMsg.Format msg; \
  AfxMessageBox(strMsg, MB_OK | MB_ICONEXCLAMATION); \
}

class CTracer
{
public:
	CTracer(LPCTSTR pszTrace) : m_strTrace(pszTrace) { In(); }
	CTracer(CString strTrace) : m_strTrace(strTrace) { In(); }

	void In()      { TRACE("In : %s\n", (LPCTSTR)m_strTrace); }
	void Message() { TRACE("Msg: %s: ", (LPCTSTR)m_strTrace); }
	void Error()   { TRACE("Err: %s: ", (LPCTSTR)m_strTrace); }
	void Out()     { TRACE("Out: %s\n", (LPCTSTR)m_strTrace);	}

	~CTracer() { Out(); }

private:
	CString m_strTrace;
};

#undef TRACE_IN
#undef TRACE_MSG
#undef TRACE_ERR

#ifdef DEBUG_TRACE
#  define TRACE_IN(psz) CTracer _tracer(psz)
#  define TRACE_MSG(msg) _tracer.Message(); TRACE msg; TRACE("\n");
#  define TRACE_ERR(msg) _tracer.Error(); TRACE("in file %s at line %d:\n  ", __FILE__, __LINE__); TRACE msg
#else
#  define TRACE_IN(psz)
#  define TRACE_MSG(msg)
#  define TRACE_ERR(msg) \
MESSAGE_BOX(("Error detected in file %s at line %d.", __FILE__, __LINE__)); \
MESSAGE_BOX(msg)
#endif

//-----------------------------------------------------------------------------
// COM Helper Macros

#define IMPLEMENT_IUNKNOWN_ADDREF(ObjectClass, InterfaceClass) \
STDMETHODIMP_(ULONG) ObjectClass::X##InterfaceClass::AddRef() \
{ \
  METHOD_PROLOGUE_EX_(ObjectClass, InterfaceClass) \
  return pThis->ExternalAddRef(); \
}

#define IMPLEMENT_IUNKNOWN_RELEASE(ObjectClass, InterfaceClass) \
STDMETHODIMP_(ULONG) ObjectClass::X##InterfaceClass::Release(void) \
{ \
  METHOD_PROLOGUE_EX_(ObjectClass, InterfaceClass) \
  return pThis->ExternalRelease(); \
}

#define IMPLEMENT_IUNKNOWN_QUERYINTERFACE(ObjectClass, InterfaceClass) \
STDMETHODIMP ObjectClass::X##InterfaceClass::QueryInterface(REFIID riid, LPVOID* ppVoid) \
{ \
  METHOD_PROLOGUE_EX_(ObjectClass, InterfaceClass) \
  return (HRESULT)pThis->ExternalQueryInterface(&riid, ppVoid); \
}

#define IMPLEMENT_IUNKNOWN(ObjectClass, InterfaceClass) \
  IMPLEMENT_IUNKNOWN_ADDREF(ObjectClass, InterfaceClass) \
  IMPLEMENT_IUNKNOWN_RELEASE(ObjectClass, InterfaceClass) \
  IMPLEMENT_IUNKNOWN_QUERYINTERFACE(ObjectClass, InterfaceClass)

//-----------------------------------------------------------------------------
// Automatic (smart) pointer class template (see p. 293 of "More Effective C++", by
// Scott Meyers.

// explicit keyword not yet supported
#define explicit

// use my version of auto_ptr until compiler provides it
#define auto_ptr CAutoPtr

template<class T> class CAutoPtr
{
public:
	// constructors
	explicit CAutoPtr(T* pT = NULL) : m_pT(pT) { }
#if 0
	template<class U> CAutoPtr(CAutoPtr<U>& rhs) : m_pT(rhs.release()) { }
#else
	CAutoPtr(CAutoPtr<T>& rhs) : m_pT(rhs.release()) { }
#endif

	// destructor
	~CAutoPtr() { delete m_pT; }

	// assignment operator
#if 0
	template<class U>	CAutoPtr<T>& operator=(CAutoPtr<U>& rhs) {
		if (this != rhs) reset(rhs.release());
		return self;
	}
#else
	CAutoPtr<T>& operator=(CAutoPtr<T>& rhs) {
		if (this != &rhs) reset(rhs.release());
		return self;
	}
#endif

	// dereference operator
	T& operator*() const { return *m_pT; }

	// pointer access operator
	T* get() const { return m_pT; }

	// pointer operator
	T* operator->() const { return get(); }

	// release pointer
	T* release() { T* pT = m_pT; m_pT = NULL; return pT; }

	// reset pointer
	void reset(T* pT = NULL) { delete m_pT; m_pT = pT; }

private:
	T* m_pT;
};

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看av不卡| 91在线视频免费91| 国产色婷婷亚洲99精品小说| 色婷婷激情综合| 日本亚洲一区二区| 欧美日韩精品免费| 韩国女主播一区| 夜夜揉揉日日人人青青一国产精品| 欧美日韩国产免费一区二区| 国产精品影视在线观看| 肉色丝袜一区二区| 亚洲男人都懂的| 中文字幕一区二区不卡| 欧美大度的电影原声| 欧美日韩国产bt| 337p亚洲精品色噜噜狠狠| 国产一区二区三区免费播放| 久久精品国产精品亚洲红杏| 一区二区三国产精华液| 亚洲国产精品成人综合| 欧美精品一区二区在线播放| 欧美剧情电影在线观看完整版免费励志电影| 午夜国产精品一区| 三级在线观看一区二区| 日韩精品欧美精品| 国产真实乱子伦精品视频| 亚洲sss视频在线视频| 一区二区三区在线视频免费观看| 欧美一级在线观看| 久久精品亚洲精品国产欧美kt∨| 蜜乳av一区二区| 亚洲综合区在线| 视频一区在线播放| 毛片av一区二区三区| 国产69精品久久久久777| 99re这里都是精品| 91福利国产成人精品照片| 欧美一区二区三区人| 国产人妖乱国产精品人妖| 综合久久给合久久狠狠狠97色| 午夜免费久久看| 日韩欧美一区二区免费| 亚洲一级二级三级在线免费观看| 日韩精品中文字幕一区二区三区 | 欧美日韩一区中文字幕| 亚洲成a人片在线不卡一二三区| 亚洲另类春色校园小说| 日韩—二三区免费观看av| 玖玖九九国产精品| 久久国产精品区| 精品国产三级a在线观看| 另类成人小视频在线| 欧美激情一二三区| 在线观看亚洲a| 日本亚洲一区二区| 国产精品久久久久影视| 欧美四级电影在线观看| 久久99精品一区二区三区| 色婷婷久久久亚洲一区二区三区| 欧美日韩国产电影| 亚洲精品伦理在线| 成人性生交大片免费| 亚洲精品在线免费播放| 午夜亚洲福利老司机| 人禽交欧美网站| 91精品久久久久久久99蜜桃| 亚洲欧洲精品一区二区三区不卡| 欧美一区二区精品| 亚洲免费伊人电影| 欧美久久高跟鞋激| 成人黄色小视频| 亚洲不卡在线观看| 久久久亚洲午夜电影| 欧美在线不卡视频| 国精产品一区一区三区mba桃花| 亚洲欧洲日韩一区二区三区| 在线不卡中文字幕播放| 成人动漫一区二区在线| 免费看日韩精品| 亚洲精品少妇30p| www国产亚洲精品久久麻豆| 在线视频综合导航| 东方aⅴ免费观看久久av| 日本sm残虐另类| 一区二区三区欧美视频| 久久久久久久久久久久久久久99| 欧美三级视频在线观看| 国产馆精品极品| 免费观看日韩av| 亚洲在线视频网站| 国产精品美女久久久久久2018| 欧美麻豆精品久久久久久| 99久久婷婷国产综合精品电影| 九一九一国产精品| 日本女优在线视频一区二区| 亚洲一区在线播放| 亚洲精品日韩专区silk| 国产精品久久久久久久久果冻传媒| 日韩视频在线你懂得| 欧美久久一二区| 欧美无乱码久久久免费午夜一区 | 日韩一二在线观看| 在线观看国产91| 91免费版在线| 99久久精品99国产精品| 成人精品视频.| 国产99久久久精品| 国产美女视频一区| 国产乱子伦视频一区二区三区| 麻豆精品国产91久久久久久| 日本特黄久久久高潮| 婷婷久久综合九色综合伊人色| 亚洲乱码国产乱码精品精98午夜 | 美女视频第一区二区三区免费观看网站| 一区二区三区中文字幕| 亚洲免费观看视频| 亚洲最大成人综合| 亚洲小少妇裸体bbw| 亚洲成a天堂v人片| 首页国产欧美久久| 蜜臀av亚洲一区中文字幕| 蜜臀精品久久久久久蜜臀| 日本va欧美va精品发布| 国产在线日韩欧美| 国产乱码精品1区2区3区| 高清在线观看日韩| 99久久国产综合精品女不卡| 91亚洲精品久久久蜜桃网站 | 成人av在线网| 色婷婷精品大视频在线蜜桃视频| 欧美视频日韩视频| 日韩西西人体444www| 久久久久9999亚洲精品| 亚洲色大成网站www久久九九| 亚洲欧美一区二区三区国产精品| 一区二区三区四区视频精品免费 | 久久蜜臀精品av| 国产精品私人自拍| 亚洲激情中文1区| 秋霞午夜av一区二区三区| 精品一区二区三区av| 播五月开心婷婷综合| 欧美日韩国产综合久久 | 91精品国产综合久久久久久久久久| 91麻豆精品国产91| 国产亚洲女人久久久久毛片| 亚洲男人电影天堂| 精品一区二区免费| 色噜噜夜夜夜综合网| 欧美一级欧美三级| 狠狠狠色丁香婷婷综合激情| 成人99免费视频| 亚洲观看高清完整版在线观看| 色天使久久综合网天天| 欧美挠脚心视频网站| 久久噜噜亚洲综合| 免费高清成人在线| 日韩精品一区国产麻豆| 精品一区二区免费| 日韩一区二区免费高清| 日本网站在线观看一区二区三区 | 国产欧美一区二区精品性| 亚洲一区二区av在线| 久久国产视频网| 欧美一区二区观看视频| 亚洲欧美日韩精品久久久久| 成人精品免费网站| 亚洲综合免费观看高清完整版| 欧美四级电影在线观看| 日韩国产欧美在线播放| 中文子幕无线码一区tr| 亚瑟在线精品视频| 国产日本欧洲亚洲| 久久亚洲精品国产精品紫薇| 欧美一级在线视频| 久久久久9999亚洲精品| 国产日韩亚洲欧美综合| 欧美一区二区女人| 日韩精品在线一区| 国产精品素人一区二区| 国产精品高潮呻吟久久| 亚洲欧洲综合另类| 调教+趴+乳夹+国产+精品| 亚洲少妇中出一区| 日韩精品在线一区二区| 欧美在线三级电影| 国产一级精品在线| 婷婷久久综合九色综合伊人色| 国产精品污网站| 欧美草草影院在线视频| 在线播放中文一区| 欧美日韩一卡二卡三卡| 国产麻豆精品在线观看| 亚洲激情网站免费观看| 国产精品不卡一区| 精品少妇一区二区三区在线视频| 欧美色视频一区| 日本久久精品电影| 一本一道综合狠狠老| 秋霞午夜鲁丝一区二区老狼|