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

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

?? dxutil.h

?? VC游戲編程基礎
?? H
字號:
//-----------------------------------------------------------------------------
// File: DXUtil.h
//
// Desc: Helper functions and typing shortcuts for DirectX programming.
//
// Copyright (c) Microsoft Corporation. All rights reserved
//-----------------------------------------------------------------------------
#ifndef DXUTIL_H
#define DXUTIL_H


//-----------------------------------------------------------------------------
// Miscellaneous helper functions
//-----------------------------------------------------------------------------
#define SAFE_DELETE(p)       { if(p) { delete (p);     (p)=NULL; } }
#define SAFE_DELETE_ARRAY(p) { if(p) { delete[] (p);   (p)=NULL; } }
#define SAFE_RELEASE(p)      { if(p) { (p)->Release(); (p)=NULL; } }


#ifndef UNDER_CE
//-----------------------------------------------------------------------------
// Name: DXUtil_GetDXSDKMediaPath() and DXUtil_FindMediaFile() 
// Desc: Returns the DirectX SDK path, as stored in the system registry
//       during the SDK install.
//-----------------------------------------------------------------------------
HRESULT DXUtil_GetDXSDKMediaPathCch( TCHAR* strDest, int cchDest );
HRESULT DXUtil_GetDXSDKMediaPathCb( TCHAR* szDest, int cbDest );
HRESULT DXUtil_FindMediaFileCch( TCHAR* strDestPath, int cchDest, LPCTSTR strFilename );
HRESULT DXUtil_FindMediaFileCb( TCHAR* szDestPath, int cbDest, LPCTSTR strFilename );
#endif // !UNDER_CE


//-----------------------------------------------------------------------------
// Name: DXUtil_Read*RegKey() and DXUtil_Write*RegKey()
// Desc: Helper functions to read/write a string registry key 
//-----------------------------------------------------------------------------
HRESULT DXUtil_WriteStringRegKey( HKEY hKey, LPCTSTR strRegName, LPCTSTR strValue );
HRESULT DXUtil_WriteFloatRegKey( HKEY hKey, LPCTSTR strRegName, FLOAT fValue );
HRESULT DXUtil_WriteIntRegKey( HKEY hKey, LPCTSTR strRegName, DWORD dwValue );
HRESULT DXUtil_WriteGuidRegKey( HKEY hKey, LPCTSTR strRegName, GUID guidValue );
HRESULT DXUtil_WriteBoolRegKey( HKEY hKey, LPCTSTR strRegName, BOOL bValue );

HRESULT DXUtil_ReadStringRegKeyCch( HKEY hKey, LPCTSTR strRegName, TCHAR* strDest, DWORD cchDest, LPCTSTR strDefault );
HRESULT DXUtil_ReadStringRegKeyCb( HKEY hKey, LPCTSTR strRegName, TCHAR* strDest, DWORD cbDest, LPCTSTR strDefault );
HRESULT DXUtil_ReadFloatRegKey( HKEY hKey, LPCTSTR strRegName, FLOAT* fDest, FLOAT fDefault );
HRESULT DXUtil_ReadIntRegKey( HKEY hKey, LPCTSTR strRegName, DWORD* pdwValue, DWORD dwDefault );
HRESULT DXUtil_ReadGuidRegKey( HKEY hKey, LPCTSTR strRegName, GUID* pGuidValue, GUID& guidDefault );
HRESULT DXUtil_ReadBoolRegKey( HKEY hKey, LPCTSTR strRegName, BOOL* pbValue, BOOL bDefault );


//-----------------------------------------------------------------------------
// Name: DXUtil_Timer()
// Desc: Performs timer opertations. Use the following commands:
//          TIMER_RESET           - to reset the timer
//          TIMER_START           - to start the timer
//          TIMER_STOP            - to stop (or pause) the timer
//          TIMER_ADVANCE         - to advance the timer by 0.1 seconds
//          TIMER_GETABSOLUTETIME - to get the absolute system time
//          TIMER_GETAPPTIME      - to get the current time
//          TIMER_GETELAPSEDTIME  - to get the time that elapsed between 
//                                  TIMER_GETELAPSEDTIME calls
//-----------------------------------------------------------------------------
enum TIMER_COMMAND { TIMER_RESET, TIMER_START, TIMER_STOP, TIMER_ADVANCE,
                     TIMER_GETABSOLUTETIME, TIMER_GETAPPTIME, TIMER_GETELAPSEDTIME };
FLOAT __stdcall DXUtil_Timer( TIMER_COMMAND command );


//-----------------------------------------------------------------------------
// UNICODE support for converting between CHAR, TCHAR, and WCHAR strings
//-----------------------------------------------------------------------------
HRESULT DXUtil_ConvertAnsiStringToWideCch( WCHAR* wstrDestination, const CHAR* strSource, int cchDestChar );
HRESULT DXUtil_ConvertWideStringToAnsiCch( CHAR* strDestination, const WCHAR* wstrSource, int cchDestChar );
HRESULT DXUtil_ConvertGenericStringToAnsiCch( CHAR* strDestination, const TCHAR* tstrSource, int cchDestChar );
HRESULT DXUtil_ConvertGenericStringToWideCch( WCHAR* wstrDestination, const TCHAR* tstrSource, int cchDestChar );
HRESULT DXUtil_ConvertAnsiStringToGenericCch( TCHAR* tstrDestination, const CHAR* strSource, int cchDestChar );
HRESULT DXUtil_ConvertWideStringToGenericCch( TCHAR* tstrDestination, const WCHAR* wstrSource, int cchDestChar );
HRESULT DXUtil_ConvertAnsiStringToWideCb( WCHAR* wstrDestination, const CHAR* strSource, int cbDestChar );
HRESULT DXUtil_ConvertWideStringToAnsiCb( CHAR* strDestination, const WCHAR* wstrSource, int cbDestChar );
HRESULT DXUtil_ConvertGenericStringToAnsiCb( CHAR* strDestination, const TCHAR* tstrSource, int cbDestChar );
HRESULT DXUtil_ConvertGenericStringToWideCb( WCHAR* wstrDestination, const TCHAR* tstrSource, int cbDestChar );
HRESULT DXUtil_ConvertAnsiStringToGenericCb( TCHAR* tstrDestination, const CHAR* strSource, int cbDestChar );
HRESULT DXUtil_ConvertWideStringToGenericCb( TCHAR* tstrDestination, const WCHAR* wstrSource, int cbDestChar );


//-----------------------------------------------------------------------------
// Readme functions
//-----------------------------------------------------------------------------
VOID DXUtil_LaunchReadme( HWND hWnd, LPCTSTR strLoc = NULL );

//-----------------------------------------------------------------------------
// GUID to String converting 
//-----------------------------------------------------------------------------
HRESULT DXUtil_ConvertGUIDToStringCch( const GUID* pGuidSrc, TCHAR* strDest, int cchDestChar );
HRESULT DXUtil_ConvertGUIDToStringCb( const GUID* pGuidSrc, TCHAR* strDest, int cbDestChar );
HRESULT DXUtil_ConvertStringToGUID( const TCHAR* strIn, GUID* pGuidOut );


//-----------------------------------------------------------------------------
// Debug printing support
// See dxerr9.h for more debug printing support
//-----------------------------------------------------------------------------
VOID    DXUtil_Trace( LPCTSTR strMsg, ... );

#if defined(DEBUG) | defined(_DEBUG)
    #define DXTRACE           DXUtil_Trace
#else
    #define DXTRACE           sizeof
#endif


//-----------------------------------------------------------------------------
// Name: ArrayListType
// Desc: Indicates how data should be stored in a CArrayList
//-----------------------------------------------------------------------------
enum ArrayListType
{
    AL_VALUE,       // entry data is copied into the list
    AL_REFERENCE,   // entry pointers are copied into the list
};


//-----------------------------------------------------------------------------
// Name: CArrayList
// Desc: A growable array
//-----------------------------------------------------------------------------
class CArrayList
{
protected:
    ArrayListType m_ArrayListType;
    void* m_pData;
    UINT m_BytesPerEntry;
    UINT m_NumEntries;
    UINT m_NumEntriesAllocated;

public:
    CArrayList( ArrayListType Type, UINT BytesPerEntry = 0 );
    ~CArrayList( void );
    HRESULT Add( void* pEntry );
    void Remove( UINT Entry );
    void* GetPtr( UINT Entry );
    UINT Count( void ) { return m_NumEntries; }
    bool Contains( void* pEntryData );
    void Clear( void ) { m_NumEntries = 0; }
};

//-----------------------------------------------------------------------------
// WinCE build support
//-----------------------------------------------------------------------------

#ifdef UNDER_CE

#define CheckDlgButton(hdialog, id, state) ::SendMessage(::GetDlgItem(hdialog, id), BM_SETCHECK, state, 0)
#define IsDlgButtonChecked(hdialog, id) ::SendMessage(::GetDlgItem(hdialog, id), BM_GETCHECK, 0L, 0L)
#define GETTIMESTAMP GetTickCount
#define _TWINCE(x) _T(x)

__inline int GetScrollPos(HWND hWnd, int nBar)
{
	SCROLLINFO si;
	memset(&si, 0, sizeof(si));
	si.cbSize = sizeof(si);
	si.fMask = SIF_POS;
	if (!GetScrollInfo(hWnd, nBar, &si))
	{
		return 0;
	}
	else
	{
		return si.nPos;
	}
}

#else // !UNDER_CE

#define GETTIMESTAMP timeGetTime
#define _TWINCE(x) x

#endif // UNDER_CE


#endif // DXUTIL_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷中文字幕一区三区| 亚洲国产成人精品视频| 亚洲最大成人网4388xx| 美国毛片一区二区三区| 99视频精品在线| 久久久美女毛片| 日欧美一区二区| 国产成人精品综合在线观看| 欧美日韩国产片| 中文字幕一区二区三区不卡| 玖玖九九国产精品| 欧美日韩高清一区二区三区| 中文字幕一区二区不卡| 久久66热re国产| 5858s免费视频成人| 亚洲男人天堂av网| 成人精品在线视频观看| 亚洲精品一区二区三区99| 日韩二区三区四区| 色av成人天堂桃色av| 中文字幕二三区不卡| 国产一区二区三区蝌蚪| 日韩一卡二卡三卡| 美国三级日本三级久久99| 欧美疯狂性受xxxxx喷水图片| 亚洲美女屁股眼交3| 99久久国产综合精品女不卡| 一色桃子久久精品亚洲| 成人激情小说乱人伦| 国产精品私人影院| 东方欧美亚洲色图在线| 欧美国产一区在线| 成人v精品蜜桃久久一区| 成人欧美一区二区三区黑人麻豆| 岛国一区二区在线观看| 中文字幕高清不卡| 91免费国产视频网站| 亚洲精品国产品国语在线app| 99国产精品国产精品毛片| 亚洲精品免费看| 欧美三级视频在线观看| 天天影视网天天综合色在线播放| 欧美美女一区二区三区| 蜜桃视频一区二区三区| 久久毛片高清国产| 99久久国产综合精品色伊| 亚洲一区二区三区四区中文字幕| 欧美视频精品在线观看| 日韩经典中文字幕一区| 欧美精品一区二区在线播放| 国产成人精品免费视频网站| 亚洲国产精品黑人久久久| 白白色 亚洲乱淫| 亚洲成人1区2区| 精品国免费一区二区三区| 成人福利电影精品一区二区在线观看| 最新中文字幕一区二区三区| 欧美色涩在线第一页| 精久久久久久久久久久| 中文字幕一区二区三| 欧美日韩久久不卡| 精品一区二区三区免费视频| 国产精品久久久久久妇女6080| 日本精品一级二级| 久久综合综合久久综合| 国产精品久99| 欧美一区二区播放| 成人v精品蜜桃久久一区| 日韩精品每日更新| 国产精品人人做人人爽人人添 | 日韩在线一区二区三区| 日韩亚洲欧美一区| eeuss鲁片一区二区三区在线看| 亚洲成av人片在www色猫咪| 精品国产麻豆免费人成网站| 色婷婷久久一区二区三区麻豆| 婷婷久久综合九色综合伊人色| 中文字幕不卡的av| 91精品一区二区三区在线观看| 国产不卡视频在线播放| 日韩二区三区四区| 一区二区在线电影| 国产亚洲综合在线| 欧美一区国产二区| 99国产精品久| 懂色av中文字幕一区二区三区| 三级影片在线观看欧美日韩一区二区 | 日韩欧美一区二区久久婷婷| 91网站在线观看视频| 国产乱码精品一区二区三区av| 亚洲丶国产丶欧美一区二区三区| 欧美激情一区二区三区| 久久午夜色播影院免费高清| 欧美精三区欧美精三区| 色成年激情久久综合| 国产aⅴ综合色| 久久国产精品72免费观看| 亚洲高清免费视频| 亚洲视频你懂的| 国产精品日产欧美久久久久| 久久你懂得1024| 精品va天堂亚洲国产| 91精品婷婷国产综合久久竹菊| 91搞黄在线观看| 欧美性一二三区| 欧美日韩在线精品一区二区三区激情 | 91久久久免费一区二区| 国产成人亚洲综合a∨婷婷| 日韩成人精品在线| 丝袜美腿亚洲一区二区图片| 亚洲自拍偷拍九九九| 亚洲免费在线电影| 亚洲激情自拍偷拍| 一区二区三区不卡在线观看 | 在线观看91精品国产麻豆| 91久久精品一区二区三区| 色综合视频在线观看| 99久久精品国产导航| 92国产精品观看| 91国偷自产一区二区三区观看| 色嗨嗨av一区二区三区| 日本精品一级二级| 欧美日韩大陆一区二区| 91精品国产综合久久精品麻豆 | 一区二区在线观看不卡| 亚洲一区视频在线观看视频| 一区二区三区影院| 日韩av网站在线观看| 美女视频黄免费的久久 | 99re成人精品视频| 91久久线看在观草草青青| 欧美狂野另类xxxxoooo| 日韩美女天天操| 国产视频一区二区三区在线观看| 国产欧美va欧美不卡在线| 亚洲欧美另类久久久精品| 亚洲第四色夜色| 极品销魂美女一区二区三区| 国产福利一区二区| 在线亚洲免费视频| 精品久久一区二区| 国产精品电影一区二区| 亚洲国产精品视频| 精品无人码麻豆乱码1区2区 | 亚洲另类春色校园小说| 天天亚洲美女在线视频| 激情丁香综合五月| 99久久综合国产精品| 欧美精品自拍偷拍动漫精品| 久久噜噜亚洲综合| 一区二区三区在线观看网站| 久久国产三级精品| 一本久久a久久免费精品不卡| 日韩女优毛片在线| 一区二区三区色| 国产精品一区免费在线观看| 欧美在线影院一区二区| 久久久国际精品| 三级久久三级久久久| 成人一区二区在线观看| 911精品国产一区二区在线| 2020国产精品久久精品美国| 亚洲综合成人在线| 国产成人av电影在线播放| 欧美肥妇bbw| 亚洲精品久久嫩草网站秘色| 国产成人av影院| 91麻豆精品国产91久久久| 亚洲欧美日韩小说| 国模大尺度一区二区三区| 欧美日韩午夜在线| 国产精品国产三级国产普通话99 | 欧美另类高清zo欧美| 国产精品传媒入口麻豆| 蜜臀av性久久久久蜜臀aⅴ | 在线精品亚洲一区二区不卡| 欧美成人r级一区二区三区| 一区二区三区四区在线免费观看 | 日韩午夜激情视频| 亚洲一本大道在线| 色94色欧美sute亚洲13| 中文字幕日韩精品一区| 国产高清视频一区| 久久久久久黄色| 国产在线视视频有精品| 777xxx欧美| 日韩精品亚洲一区二区三区免费| 欧洲精品在线观看| 亚洲免费资源在线播放| 99精品视频一区二区三区| 国产三级精品三级| 国产大陆亚洲精品国产| 日韩精品中文字幕一区| 日韩成人免费在线| 91精品婷婷国产综合久久性色 | 成人丝袜18视频在线观看| 久久婷婷国产综合国色天香 | 国产欧美精品日韩区二区麻豆天美| 精品制服美女丁香| 久久先锋影音av鲁色资源|