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

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

?? iasiothiscallresolver.h

?? 一個開源的sip源代碼
?? H
字號:
// ****************************************************************************// File:			IASIOThiscallResolver.h// Description:     The IASIOThiscallResolver class implements the IASIO//					interface and acts as a proxy to the real IASIO interface by//                  calling through its vptr table using the thiscall calling//                  convention. To put it another way, we interpose//                  IASIOThiscallResolver between ASIO SDK code and the driver.//                  This is necessary because most non-Microsoft compilers don't//                  implement the thiscall calling convention used by IASIO.////					iasiothiscallresolver.cpp contains the background of this//					problem plus a technical description of the vptr//                  manipulations.////					In order to use this mechanism one simply has to add//					iasiothiscallresolver.cpp to the list of files to compile//                  and #include <iasiothiscallresolver.h>////					Note that this #include must come after the other ASIO SDK//                  #includes, for example:////					#include <windows.h>//					#include <asiosys.h>//					#include <asio.h>//					#include <asiodrivers.h>//					#include <iasiothiscallresolver.h>////					Actually the important thing is to #include//                  <iasiothiscallresolver.h> after <asio.h>. We have//                  incorporated a test to enforce this ordering.////					The code transparently takes care of the interposition by//                  using macro substitution to intercept calls to ASIOInit()//                  and ASIOExit(). We save the original ASIO global//                  "theAsioDriver" in our "that" variable, and then set//                  "theAsioDriver" to equal our IASIOThiscallResolver instance.//// 					Whilst this method of resolving the thiscall problem requires//					the addition of #include <iasiothiscallresolver.h> to client//                  code it has the advantage that it does not break the terms//                  of the ASIO licence by publishing it. We are NOT modifying//                  any Steinberg code here, we are merely implementing the IASIO//					interface in the same way that we would need to do if we//					wished to provide an open source ASIO driver.////					For compilation with MinGW -lole32 needs to be added to the//                  linker options. For BORLAND, linking with Import32.lib is//                  sufficient.////					The dependencies are with: CoInitialize, CoUninitialize,//					CoCreateInstance, CLSIDFromString - used by asiolist.cpp//					and are required on Windows whether ThiscallResolver is used//					or not.////					Searching for the above strings in the root library path//					of your compiler should enable the correct libraries to be//					identified if they aren't immediately obvious.////                  Note that the current implementation of IASIOThiscallResolver//                  is not COM compliant - it does not correctly implement the//                  IUnknown interface. Implementing it is not necessary because//                  it is not called by parts of the ASIO SDK which call through//                  theAsioDriver ptr. The IUnknown methods are implemented as//                  assert(false) to ensure that the code fails if they are//                  ever called.// Restrictions:	None. Public Domain & Open Source distribute freely//					You may use IASIOThiscallResolver commercially as well as//                  privately.//					You the user assume the responsibility for the use of the//					files, binary or text, and there is no guarantee or warranty,//					expressed or implied, including but not limited to the//					implied warranties of merchantability and fitness for a//					particular purpose. You assume all responsibility and agree//					to hold no entity, copyright holder or distributors liable//					for any loss of data or inaccurate representations of data//					as a result of using IASIOThiscallResolver.// Version:         1.4 Added separate macro CALL_THISCALL_1_DOUBLE from//                  Andrew Baldwin, and volatile for whole gcc asm blocks,//                  both for compatibility with newer gcc versions. Cleaned up//                  Borland asm to use one less register.//                  1.3 Switched to including assert.h for better compatibility.//                  Wrapped entire .h and .cpp contents with a check for//                  _MSC_VER to provide better compatibility with MS compilers.//                  Changed Singleton implementation to use static instance//                  instead of freestore allocated instance. Removed ASIOExit//                  macro as it is no longer needed.//                  1.2 Removed semicolons from ASIOInit and ASIOExit macros to//                  allow them to be embedded in expressions (if statements).//                  Cleaned up some comments. Removed combase.c dependency (it//                  doesn't compile with BCB anyway) by stubbing IUnknown.//                  1.1 Incorporated comments from Ross Bencina including things//					such as changing name from ThiscallResolver to//					IASIOThiscallResolver, tidying up the constructor, fixing//					a bug in IASIOThiscallResolver::ASIOExit() and improving//					portability through the use of conditional compilation//					1.0 Initial working version.// Created:			6/09/2003// Authors:         Fraser Adams//                  Ross Bencina//                  Rene G. Ceballos//                  Martin Fay//                  Antti Silvast//                  Andrew Baldwin//// ****************************************************************************#ifndef included_iasiothiscallresolver_h#define included_iasiothiscallresolver_h// We only need IASIOThiscallResolver at all if we are on Win32. For other// platforms we simply bypass the IASIOThiscallResolver definition to allow us// to be safely #include'd whatever the platform to keep client code portable#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)// If microsoft compiler we can call IASIO directly so IASIOThiscallResolver// is not used.#if !defined(_MSC_VER)// The following is in order to ensure that this header is only included after// the other ASIO headers (except for the case of iasiothiscallresolver.cpp).// We need to do this because IASIOThiscallResolver works by eclipsing the// original definition of ASIOInit() with a macro (see below).#if !defined(iasiothiscallresolver_sourcefile)	#if !defined(__ASIO_H)	#error iasiothiscallresolver.h must be included AFTER asio.h	#endif#endif#include <windows.h>#include <asiodrvr.h> /* From ASIO SDK */class IASIOThiscallResolver : public IASIO {private:	IASIO* that_; // Points to the real IASIO	static IASIOThiscallResolver instance; // Singleton instance	// Constructors - declared private so construction is limited to    // our Singleton instance    IASIOThiscallResolver();	IASIOThiscallResolver(IASIO* that);public:    // Methods from the IUnknown interface. We don't fully implement IUnknown    // because the ASIO SDK never calls these methods through theAsioDriver ptr.    // These methods are implemented as assert(false).    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppv);    virtual ULONG STDMETHODCALLTYPE AddRef();    virtual ULONG STDMETHODCALLTYPE Release();    // Methods from the IASIO interface, implemented as forwarning calls to that.	virtual ASIOBool init(void *sysHandle);	virtual void getDriverName(char *name);	virtual long getDriverVersion();	virtual void getErrorMessage(char *string);	virtual ASIOError start();	virtual ASIOError stop();	virtual ASIOError getChannels(long *numInputChannels, long *numOutputChannels);	virtual ASIOError getLatencies(long *inputLatency, long *outputLatency);	virtual ASIOError getBufferSize(long *minSize, long *maxSize, long *preferredSize, long *granularity);	virtual ASIOError canSampleRate(ASIOSampleRate sampleRate);	virtual ASIOError getSampleRate(ASIOSampleRate *sampleRate);	virtual ASIOError setSampleRate(ASIOSampleRate sampleRate);	virtual ASIOError getClockSources(ASIOClockSource *clocks, long *numSources);	virtual ASIOError setClockSource(long reference);	virtual ASIOError getSamplePosition(ASIOSamples *sPos, ASIOTimeStamp *tStamp);	virtual ASIOError getChannelInfo(ASIOChannelInfo *info);	virtual ASIOError createBuffers(ASIOBufferInfo *bufferInfos, long numChannels, long bufferSize, ASIOCallbacks *callbacks);	virtual ASIOError disposeBuffers();	virtual ASIOError controlPanel();	virtual ASIOError future(long selector,void *opt);	virtual ASIOError outputReady();    // Class method, see ASIOInit() macro below.    static ASIOError ASIOInit(ASIODriverInfo *info); // Delegates to ::ASIOInit};// Replace calls to ASIOInit with our interposing version.// This macro enables us to perform thiscall resolution simply by #including// <iasiothiscallresolver.h> after the asio #includes (this file _must_ be// included _after_ the asio #includes)#define ASIOInit(name) IASIOThiscallResolver::ASIOInit((name))#endif /* !defined(_MSC_VER) */#endif /* Win32 */#endif /* included_iasiothiscallresolver_h */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区精品在线| 青青草国产精品亚洲专区无| 欧美日韩一区成人| 国产在线视频不卡二| 亚洲欧美一区二区久久| 欧美电影免费观看完整版| 91美女视频网站| 国产精品66部| 日本成人在线网站| 亚洲欧美区自拍先锋| 欧美精品一区二区三区一线天视频 | 亚洲男人的天堂av| 26uuu精品一区二区在线观看| 日本乱码高清不卡字幕| 国产乱码字幕精品高清av| 亚洲国产精品久久艾草纯爱| 国产亚洲美州欧州综合国| 96av麻豆蜜桃一区二区| 亚洲小说春色综合另类电影| 国产精品白丝在线| 久久一留热品黄| 日韩一级黄色片| 在线区一区二视频| 99久久99久久免费精品蜜臀| 国内外精品视频| 午夜私人影院久久久久| 国产精品高清亚洲| 久久久精品影视| 欧美大白屁股肥臀xxxxxx| 欧美日韩免费观看一区二区三区| 岛国精品一区二区| 极品尤物av久久免费看| 日本成人在线不卡视频| 亚洲va韩国va欧美va精品| 亚洲免费在线电影| 中文字幕一区二区三区在线不卡 | 91麻豆精品久久久久蜜臀| 色婷婷综合久久久久中文| 99久久777色| 成a人片亚洲日本久久| 成人成人成人在线视频| 成人国产精品免费观看视频| 国产成人午夜99999| 国产成人精品一区二区三区四区| 激情综合色综合久久综合| 美女网站一区二区| 久久成人羞羞网站| 九九视频精品免费| 国内外成人在线| 国产乱子轮精品视频| 国产在线不卡一区| 国产99精品视频| 99国产精品国产精品久久| 99riav一区二区三区| 日本高清视频一区二区| 欧美色综合影院| 欧美一区二区三区免费| 欧美一区三区二区| 精品久久99ma| 久久男人中文字幕资源站| 久久久久久**毛片大全| 国产精品毛片a∨一区二区三区 | 樱花影视一区二区| 午夜欧美视频在线观看| 精品一区二区三区视频| 国产成人h网站| 91久久精品日日躁夜夜躁欧美| 欧美日韩在线亚洲一区蜜芽| 日韩天堂在线观看| 国产欧美日韩精品一区| 亚洲精选一二三| 日本不卡一区二区| 国产**成人网毛片九色| 色噜噜久久综合| 欧美一级二级在线观看| 国产无人区一区二区三区| 亚洲精品国产视频| 久久se精品一区精品二区| 国产成人免费在线观看不卡| 一本久久a久久免费精品不卡| 欧美二区三区91| 国产欧美日本一区视频| 亚洲精选视频在线| 六月丁香综合在线视频| 99久久精品国产导航| 制服丝袜亚洲色图| 久久嫩草精品久久久精品| 亚洲欧美精品午睡沙发| 狠狠狠色丁香婷婷综合激情| 91蝌蚪国产九色| 精品国产免费视频| 亚洲另类中文字| 国产精品中文字幕欧美| 精品视频色一区| 国产精品免费视频一区| 天堂资源在线中文精品| 成人激情动漫在线观看| 777午夜精品视频在线播放| 中文字幕精品三区| 美腿丝袜亚洲综合| 91碰在线视频| 国产拍揄自揄精品视频麻豆| 偷拍日韩校园综合在线| 成人18精品视频| 久久久亚洲高清| 免费欧美日韩国产三级电影| 日本韩国一区二区| 日本一区二区免费在线观看视频| 性欧美疯狂xxxxbbbb| a亚洲天堂av| 久久久久综合网| 日本色综合中文字幕| 在线观看视频欧美| 国产精品天美传媒| 国产伦精品一区二区三区免费| 欧美日韩精品一二三区| 国产精品国产三级国产普通话三级| 久久国产精品免费| 欧美一区二区视频在线观看 | av在线这里只有精品| 久久久久久夜精品精品免费| 日本vs亚洲vs韩国一区三区二区| 欧美在线免费观看亚洲| 亚洲欧美日韩综合aⅴ视频| 成人av第一页| 中文字幕av一区二区三区高| 狠狠色狠狠色综合| 日韩精品一区二区在线| 青椒成人免费视频| 91麻豆精品国产91久久久更新时间| 悠悠色在线精品| 欧美伊人久久久久久午夜久久久久| 椎名由奈av一区二区三区| 成人晚上爱看视频| 国产欧美精品一区二区色综合| 国产盗摄一区二区三区| 久久久久久亚洲综合| 国产一区视频导航| 欧美va亚洲va国产综合| 精品一区二区三区免费视频| 精品国产91洋老外米糕| 久久国产欧美日韩精品| www一区二区| 国产一区二区调教| 2014亚洲片线观看视频免费| 日本va欧美va瓶| 精品国产一区二区精华| 久久99精品国产91久久来源| 精品国产乱码久久久久久免费 | 国产一区二区三区免费在线观看 | 亚洲人亚洲人成电影网站色| 色综合久久中文字幕| 伊人色综合久久天天人手人婷| 在线精品亚洲一区二区不卡| 亚洲高清不卡在线观看| 91精品国产综合久久精品| 麻豆91免费看| 国产欧美日韩亚州综合 | 麻豆精品一区二区三区| 2023国产精品| 成人黄色a**站在线观看| 亚洲欧美国产高清| 欧美年轻男男videosbes| 五月婷婷另类国产| 精品国产不卡一区二区三区| 成人精品视频一区二区三区| 亚洲精品久久7777| 欧美电影免费观看高清完整版在| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲国产视频一区二区| 91精品国产综合久久福利| 国产一区二区三区观看| 日韩理论片在线| 日韩一二三区视频| jvid福利写真一区二区三区| 亚洲二区在线视频| 精品日韩在线一区| 在线视频综合导航| 狠狠色丁香久久婷婷综| 亚洲免费在线看| 欧美精品一区二区三区在线播放| 91在线精品秘密一区二区| 日韩激情在线观看| 国产精品你懂的在线欣赏| 777精品伊人久久久久大香线蕉| 国产乱子伦一区二区三区国色天香| 亚洲精品美腿丝袜| 久久蜜桃一区二区| 欧美日韩中文另类| 99久久精品免费看国产| 精品一区二区三区蜜桃| 亚洲综合在线视频| 国产欧美在线观看一区| 欧美日韩一区二区欧美激情| 国产精品12区| 久久国内精品自在自线400部| 亚洲欧洲综合另类| 国产女人水真多18毛片18精品视频 | 94-欧美-setu| 国产成人日日夜夜|