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

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

?? comcorelib.c

?? vxworks的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* comCoreLib.c - core COM support *//* Copyright (c) 2001 Wind River Systems, Inc. *//*modification history--------------------01n,10dec01,dbs  diab build01m,06dec01,nel  Correct man pages.01l,02nov01,nel  SPR#71427. Correct error in comAddRegistry when null                 terminator wasn't being copied into registry entry.01k,09aug01,dbs  check args to comClassObjectGet01j,07aug01,dbs  return multiple interfaces during creation01i,06aug01,dbs  add registry-show capability01h,20jul01,dbs  add self-initialisation01g,28jun01,dbs  add interlocked inc/dec funcs01f,27jun01,dbs  ensure registry init01e,25jun01,dbs  change WIDL vtable macro name to COM_xxx01d,22jun01,dbs  add vtable-format symbol01c,22jun01,dbs  add const to args for comGuidCmp01b,21jun01,nel  Add comGuidCmp function.01a,20jun01,dbs  written*//*DESCRIPTIONThis library provides basic COM support in VxWorks. It implements anextensible registry model, and provides functions to create instancesof classes via their class objects. Support for the basic COMinterfaces IUnknown and IClassFactory is present, and it can be usedeither from C or C++. The vtable format used for COM interfaces isdefined by the C/C++ compiler and is detailed in comBase.h where eachof the known compilers is enumerated and macros are defined forgenerating vtable structures, and filling in vtable instances.The registration of coclasses is handled by a table of registryinstances within this library. When comCoreLib is asked to create aninstance of a coclass, it searches the table of known registries (eachof which is itself a COM object, exposing the IRegistry interface),asking each in turn if it has the requested coclass (identified byCLSID) registered. If so, it will then ask the registry to create aninstance of the coclass.*//* includes */#include <stdlib.h>#include <string.h>#include <stdio.h>#include "taskLib.h"#include "comCoreLib.h"#include "comErr.h"#include "private/comRegistry.h"/* defines */#define COM_CORE_MAX_REGISTRIES 8#define COM_CORE_LIB_INIT()             \    if (comCoreLibInitFlag == 0)        \        { comCoreLibInit (); }/* globals *//* This flag records whether comCoreLib has been initialized. Since it * is possible that some of the API functions (particularly the * registration functions) may be called during program * initialisation, it is important that this library allows those * calls to succeed even if its init routine hasn't been called by the * normal startup (in VxWorks, at least). Subsequent calls to the init * routine simply return OK and carry on as normal. */static int comCoreLibInitFlag = 0;/* This causes a special symbol, whose name is derived from the vtable * format determined by the WIDL_XXX macros in comBase.h, to be * declared at this point as a global. In all other modules it will be * defined as an external and so will only link if all the modules in * the program are compiled with the same vtable format defined. */DECLARE_COM_VTBL_SYMBOL_HERE;/* * This global is here to supply a default for the DCOM priority * propagation feature, when building coclasses with WOTL. */int g_defaultServerPriority = 100;/* Array of reg-entries */static struct _comCoreRegEntry    {    char *              regName;        /* name of registry */    DWORD               dwClsCtx;       /* inproc/local/remote */    IRegistry *         pRegistry;      /* registry interface */    } comCoreRegistries [COM_CORE_MAX_REGISTRIES];/**************************************************************************** comCoreLibInit - Initialize the comCore library** Initialize the comCore library.** RETURNS: OK if init succeeded, ERROR if not*/STATUS comCoreLibInit (void)    {    if (comCoreLibInitFlag == 0)        {        ++comCoreLibInitFlag;        return comRegistryInit ();        }        return OK;    }/**************************************************************************** comCreateAny - creates an instance of a class or class-object** This function scans the registry table, looking for a registry* instance with the right class-context (inproc, local or remote) and* which has the class ID <clsid> registered.** RETURNS: S_OK on success, some other failure code otherwise.** NOMANUAL*/static HRESULT comCreateAny    (    REFCLSID            clsid,          /* class ID */    IUnknown *          pUnkOuter,      /* aggregating interface */    DWORD               dwClsCtx,       /* class context */    const char *        hint,           /* service hint */    int                 classMode,      /* get class object? */    ULONG               cMQIs,          /* number of MQIs */    MULTI_QI *          pMQIs           /* MQI array */    )    {    HRESULT hr = REGDB_E_CLASSNOTREG;    int i;    IRegistry * pReg;    /* Make sure the library is initialized... */    COM_CORE_LIB_INIT ();        /* Work backwards through the table of known registries, ensuring     * we catch the most-recently added registry first.     */        for (i = COM_CORE_MAX_REGISTRIES-1; i >= 0; --i)        {        if ((comCoreRegistries[i].pRegistry != NULL) &&            ((comCoreRegistries[i].dwClsCtx & dwClsCtx) != 0))            {            pReg = comCoreRegistries[i].pRegistry;            /* Is the class registered? */            hr = IRegistry_IsClassRegistered (pReg, clsid);            if (SUCCEEDED (hr))                {                /* Create instance or Class-object? */                if (classMode)                    {                    hr = IRegistry_GetClassObject (pReg,                                                   clsid,                                                   pMQIs[0].pIID,                                                   dwClsCtx,                                                   hint,                                                   &pMQIs[0].pItf);                    }                else                    {                    hr = IRegistry_CreateInstance (pReg,                                                   clsid,                                                   pUnkOuter,                                                   dwClsCtx,                                                   hint,                                                   cMQIs,                                                   pMQIs);                    }                /* We can just exit the loop, and return whatever                 * result came back from the registry...                 */                break;                }            }        }        return hr;    }/**************************************************************************** comInstanceCreate - creates an instance of a coclass** This function returns an instance of the coclass identified by* <clsid>, asking for the interface <iid>. It may be being aggregated,* in which case the argument <pUnkOuter> holds the controlling* IUnknown interface of the aggregating object.** RETURNS: S_OK on success, or an error indication if failure occurs*          for some reason.*/HRESULT comInstanceCreate    (    REFCLSID            clsid,          /* class ID */    IUnknown *          pUnkOuter,      /* aggregating interface */    DWORD               dwClsCtx,       /* class context */    const char *        hint,           /* service hint */    ULONG               cMQIs,          /* number of MQIs */    MULTI_QI *          pMQIs           /* MQI array */    )    {    return comCreateAny (clsid,                         pUnkOuter,                         dwClsCtx,                         hint,                         FALSE,                         cMQIs,                         pMQIs);    }/**************************************************************************** comClassObjectGet - returns a class object instance** This function returns the class-object for the coclass identified by* <clsid>, and asks for the interface <iid> which will usually, but* not always, be IClassFactory.** RETURNS:* \is* \i E_POINTER* ppvClsObj doesn't point to a valid piece of memory.* \i E_NOINTERFACE* The requested interface doesn't exist.* \i S_OK* On success* \ie*/HRESULT comClassObjectGet    (    REFCLSID            clsid,          /* class ID */    DWORD               dwClsCtx,       /* class context */    const char *        hint,           /* service hint */    REFIID              iid,            /* class-obj IID */    void **             ppvClsObj       /* resulting interface ptr */    )    {    HRESULT hr;#ifdef __DCC__    MULTI_QI mqi[1];    mqi[0].pIID = iid;    mqi[0].pItf = NULL;    mqi[0].hr = S_OK;#else    MULTI_QI mqi[] = { { iid, NULL, S_OK } };#endif    if (! ppvClsObj)        return E_POINTER;        hr = comCreateAny (clsid,                       NULL,                       dwClsCtx,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产美女| 色8久久精品久久久久久蜜| 精品久久久三级丝袜| 日韩午夜精品视频| 亚洲成人三级小说| 欧美视频一区二区三区在线观看| 国产精品另类一区| 成人aa视频在线观看| 久久精品亚洲精品国产欧美| 全国精品久久少妇| 欧美电影免费观看高清完整版在线 | 欧美一区二区视频观看视频| 国产精品久久久久久户外露出 | 综合在线观看色| 岛国精品一区二区| 欧美精品日韩综合在线| 久久99国产精品久久99 | 欧美高清在线视频| 国产精品99久久久久久久女警| 欧美成人精品二区三区99精品| 免费看欧美美女黄的网站| 亚洲精品一区二区三区精华液| 奇米精品一区二区三区在线观看 | 91在线视频观看| 欧美色手机在线观看| 欧美电影免费观看完整版| 日本不卡123| 欧美一级精品在线| 美国欧美日韩国产在线播放| 欧美精品第1页| 激情综合色综合久久综合| 26uuu色噜噜精品一区二区| 国产尤物一区二区在线| 国产女人aaa级久久久级 | 亚洲少妇最新在线视频| 99久久综合狠狠综合久久| 亚洲综合激情小说| 色婷婷久久久久swag精品| 亚洲成人你懂的| 欧美哺乳videos| 秋霞影院一区二区| 亚洲精品免费在线播放| 欧美日韩一区久久| 国产成人精品免费网站| 亚洲精品视频在线看| 91精品免费观看| 国产91丝袜在线播放九色| 亚洲高清三级视频| xvideos.蜜桃一区二区| 91啪亚洲精品| 寂寞少妇一区二区三区| 久久久久久久一区| 99精品热视频| 麻豆精品在线观看| 亚洲精品乱码久久久久久日本蜜臀| 欧美视频精品在线观看| 国产成人精品www牛牛影视| 亚洲永久免费av| 欧美色图第一页| 成人av免费在线观看| 美女看a上一区| 综合电影一区二区三区 | 日本韩国欧美一区二区三区| 日本一区中文字幕| 一区二区三区在线观看国产| 国产欧美日韩卡一| 91精品国产乱码| 成人sese在线| 香蕉成人啪国产精品视频综合网| 欧美电影免费观看高清完整版在线 | 另类中文字幕网| 亚洲尤物视频在线| 亚洲国产精品二十页| 久久久久久影视| 欧美一区二区三区免费在线看| 97久久精品人人做人人爽| 国产v综合v亚洲欧| 蜜桃视频在线一区| 午夜一区二区三区在线观看| 一区二区三区不卡视频在线观看| 国产亚洲欧美一区在线观看| 欧美大黄免费观看| 欧美日本不卡视频| av网站免费线看精品| 国产成人精品www牛牛影视| 久久精品国产精品亚洲精品| 婷婷开心久久网| 五月激情综合网| 一区二区三区国产豹纹内裤在线| 亚洲综合激情另类小说区| 国产精品美女一区二区在线观看| 欧美精品一区二区三区一线天视频| 精品久久久网站| 精品国产sm最大网站免费看| 欧美日韩免费高清一区色橹橹| 欧美中文字幕一区二区三区亚洲| 91美女片黄在线观看91美女| 99精品欧美一区| 91日韩精品一区| 色哟哟欧美精品| 91国产精品成人| 一本色道a无线码一区v| 91久久香蕉国产日韩欧美9色| 99精品国产99久久久久久白柏| 在线免费观看日本欧美| 欧美性色aⅴ视频一区日韩精品| 在线观看国产91| 欧美成人精品高清在线播放| 欧美tickling网站挠脚心| 日韩一区和二区| 2023国产精品自拍| 欧美国产成人精品| 亚洲va欧美va人人爽午夜| 日韩电影一二三区| 亚洲欧美综合网| 午夜av区久久| 久久精品国产99久久6| fc2成人免费人成在线观看播放| 成人精品gif动图一区| 国产成人免费在线观看不卡| 色婷婷综合久久久久中文一区二区 | 精品视频999| 欧美性猛片aaaaaaa做受| 精品成人佐山爱一区二区| 欧美韩国日本综合| 婷婷中文字幕综合| 国产裸体歌舞团一区二区| 91蜜桃免费观看视频| 久久色在线视频| 国产精品久线观看视频| 日本欧美在线观看| 成人动漫精品一区二区| 欧美男人的天堂一二区| 中文字幕制服丝袜成人av| 日本欧美大码aⅴ在线播放| 日本伊人色综合网| 在线免费观看日本一区| 久久久午夜精品理论片中文字幕| 亚洲综合久久av| 国产成人福利片| 欧美日韩一区二区三区四区五区| 欧美激情一区二区三区在线| 亚洲福利视频三区| 丁香激情综合五月| 精品av久久707| 一区二区三区国产精华| 精品综合免费视频观看| 欧美性受xxxx黑人xyx| 欧美国产视频在线| 蜜臀av一级做a爰片久久| 色婷婷综合久久久久中文| 久久久99久久| 亚洲成人av一区| 床上的激情91.| 日韩一区二区三区电影在线观看| 精品国产一区二区精华| 亚洲婷婷综合久久一本伊一区| 日本大胆欧美人术艺术动态| 欧美日韩中文另类| 亚洲欧洲在线观看av| av一区二区三区黑人| 精品福利一区二区三区| 激情五月婷婷综合| 日韩一区二区影院| 亚洲国产cao| 欧美久久一区二区| 亚洲夂夂婷婷色拍ww47| 色综合久久久久| 亚洲国产成人一区二区三区| 国产麻豆欧美日韩一区| 精品日韩在线观看| 天天操天天干天天综合网| 欧美日韩国产天堂| 亚洲免费电影在线| 欧美无乱码久久久免费午夜一区 | 欧美一区二区三区四区视频| 日韩国产在线观看| 欧美视频一区二区三区四区| 亚洲1区2区3区4区| 欧美日韩一区二区电影| 亚洲伊人色欲综合网| 欧美中文字幕亚洲一区二区va在线| 亚洲猫色日本管| 欧美人成免费网站| 亚洲sss视频在线视频| 99精品视频一区| 夜夜爽夜夜爽精品视频| 97精品国产露脸对白| 亚洲综合无码一区二区| 91国偷自产一区二区三区成为亚洲经典| 亚洲一二三四区不卡| 在线观看亚洲a| 亚洲精品一区二区三区精华液 | 岛国精品一区二区| 91精品欧美综合在线观看最新| 麻豆精品精品国产自在97香蕉 | 国产欧美一区二区精品秋霞影院 | 日日摸夜夜添夜夜添亚洲女人| 日韩一区二区在线看| 精品一区二区在线播放|