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

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

?? enum.h

?? 一個OPC服務器開發的源代碼。結構清晰
?? H
字號:
/**************************************************************************
 *                                                                        *
 * Light OPC Server development library                                   *
 *                                                                        *
 *   Copyright (c) 2000 by Timofei Bondarenko, Kostya Volovich            *

 Main part of Enumerators manipulation
 **************************************************************************/

#ifndef ENUM_H
#define ENUM_H

#ifndef OPTIONS_H
#include "options.h"
#endif
/* some clients is never Release() an enum if it obtained with S_FALSE hresult */
#define ENUM_EMPTY_SOK(pUnk)    (S_OK)
#define ENUM_EMPTY_SFALSE(pUnk) (S_FALSE)
#define ENUM_EMPTY_NULL(pUnk)   ((*pUnk)->Release(), *pUnk = 0, S_FALSE)

#define ENUM_EMPTY_RT(flg,pUnk)  \
((flg & loDf_EE_SFALSE) == loDf_EE_NULL? ENUM_EMPTY_NULL(pUnk): \
((flg & loDf_EE_SFALSE) == loDf_EE_SOK ? ENUM_EMPTY_SOK(pUnk):  \
                                         ENUM_EMPTY_SFALSE(pUnk) ) )

#ifndef ENUM_EMPTY
#define ENUM_EMPTY(hr,flg,pUnk) (hr = ENUM_EMPTY_RT(flg,pUnk))
#endif

/*********** these definitions may not be visible outside here ************/

template <class BASE, class ITEM, const IID *IFACE>
class loEnum: public BASE, public loObjTrack
{
typedef loEnum<BASE,ITEM,IFACE> TYPE;
        LO_OBJ_XREF;
private:
        LO_IAM_DECLARE(TYPE);
        ULONG     count;
public:
        LONG      RefCount;
        TYPE     *base;
        ITEM     *list;
        ULONG     total, curpos;
#if LO_USE_FREEMARSH_ENUM
        IUnknown *freemarsh;
#endif
         loEnum(TYPE *Base);
virtual ~loEnum();

virtual HRESULT clone_item(ITEM *dest, ITEM *source) = 0;
virtual void    destroy_item(ITEM *dest) = 0;
virtual TYPE   *clone(void) = 0;

virtual HRESULT initiate(loObjTracker *list);
virtual HRESULT add_item(ITEM *src);
virtual ULONG   grow_list(ULONG newcount);
        void    destroy_list(void);
/* Actually add_item() & grow_list() may not be virtual
   but virtual functions can be defined outside this header */

/* IUnknown implementation */
STDMETHOD_ (ULONG, AddRef)(void);
STDMETHOD_ (ULONG, Release)(void);
STDMETHOD  (QueryInterface) (REFIID riid, LPVOID *ppv);

/*IEnumXXXX implementation */
STDMETHOD  (Reset)(void);

STDMETHOD  (Skip)(ULONG celt);
STDMETHOD  (Next)(ULONG celt, ITEM *rgelt, ULONG *fetched);
STDMETHOD  (Clone)(BASE **ppenum);

}; /*******************************************************************/

template <class BASE, class ITEM, const IID *IFACE>
class loEnumIface: public loEnum<BASE,ITEM,IFACE>
{
public:
typedef loEnum<BASE,ITEM,IFACE> BASETYPE;
typedef loEnumIface<BASE,ITEM,IFACE> TYPE;

        loEnumIface(TYPE *Base): loEnum<BASE,ITEM,IFACE>(Base) {};
       ~loEnumIface();
virtual HRESULT clone_item(ITEM *dest, ITEM *source);
virtual void    destroy_item(ITEM *dest);

#if LO_USE_FREEMARSH_ENUM
 inline void DisableFreemarsh(void)
            { if (freemarsh) { freemarsh->Release(); freemarsh = 0; } }
#else
 inline void DisableFreemarsh(void) { }
#endif
}; /*******************************************************************/

class loEnumUnknown: public loEnumIface<IEnumUnknown, IUnknown*, &IID_IEnumUnknown>
{
public:
        loEnumUnknown(loEnumUnknown *Base);
        loEnum<IEnumUnknown, IUnknown*, &IID_IEnumUnknown> *clone();
};

class loEnumString: public loEnum<IEnumString, LPOLESTR, &IID_IEnumString>
{
public:
         loEnumString(loEnumString *Base);
        ~loEnumString();
 HRESULT clone_item(LPOLESTR *dest, LPOLESTR *source);
 void    destroy_item(LPOLESTR *dest);
 loEnum<IEnumString, LPOLESTR, &IID_IEnumString> *clone(void);
};

class loEnumItemAttributes: public loEnum<IEnumOPCItemAttributes,
                                          OPCITEMATTRIBUTES,
                                          &IID_IEnumOPCItemAttributes>
{
public:
         loEnumItemAttributes(loEnumItemAttributes *Base);
        ~loEnumItemAttributes();
 HRESULT clone_item(OPCITEMATTRIBUTES *dest, OPCITEMATTRIBUTES *source);
 void    destroy_item(OPCITEMATTRIBUTES *dest);
 STDMETHOD (Next)(ULONG celt, OPCITEMATTRIBUTES **rgelt, ULONG *pceltFetched);
// STDMETHOD (Next)(ULONG celt, OPCITEMATTRIBUTES *rgelt, ULONG *pceltFetched);
 loEnum<IEnumOPCItemAttributes,
        OPCITEMATTRIBUTES,
        &IID_IEnumOPCItemAttributes> *clone(void);
};

class loEnumConnPoints: public loEnumIface<IEnumConnectionPoints, 
                                           IConnectionPoint*, 
                                           &IID_IEnumConnectionPoints>
{
public:
        loEnumConnPoints(loEnumConnPoints *Base);
        loEnum<IEnumConnectionPoints, 
               IConnectionPoint*, 
               &IID_IEnumConnectionPoints> *clone();
};

class loEnumConnPnt1: public loEnumConnPoints
{
        IConnectionPoint *item;
public:
        loEnumConnPnt1(IConnectionPoint *Item);
        ~loEnumConnPnt1();
};

#endif /*ENUM_H*/
/******************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
捆绑调教美女网站视频一区| 亚洲高清视频的网址| 制服.丝袜.亚洲.中文.综合| 不卡一区二区三区四区| 国产91精品久久久久久久网曝门| 精品一区二区三区不卡| 久久99久久99| 成人ar影院免费观看视频| www.欧美日韩| 欧美丝袜第三区| 日韩视频不卡中文| 国产日韩欧美制服另类| 国产精品福利影院| 亚洲成av人片www| 美女爽到高潮91| 国产成人av一区二区三区在线观看| 国产成人av一区| 99精品欧美一区二区三区小说| 91色在线porny| 日韩一区二区在线看| 久久综合色鬼综合色| 国产精品免费视频观看| 亚洲国产中文字幕| 狠狠色狠狠色合久久伊人| 国产69精品久久777的优势| 色婷婷综合久久久中文一区二区| 欧美日本在线播放| 欧美激情一区二区三区四区| 一区二区三区欧美视频| 九色综合狠狠综合久久| 91啪在线观看| 2023国产精品自拍| 亚洲综合在线免费观看| 国产中文字幕精品| 欧美精品自拍偷拍| 国产精品久久777777| 久久国产精品免费| 欧美三级乱人伦电影| 中文幕一区二区三区久久蜜桃| 午夜激情一区二区| 99麻豆久久久国产精品免费优播| 欧美久久一二三四区| 国产精品久久久久天堂| 麻豆国产欧美一区二区三区| 色94色欧美sute亚洲线路一ni| 精品奇米国产一区二区三区| 亚洲精品视频在线观看免费| 国产精品99久久久久久久vr| 欧美精选午夜久久久乱码6080| 日韩一区有码在线| 国产麻豆精品一区二区| 欧美一区二区三区四区高清| 亚洲乱码中文字幕| 国产69精品久久99不卡| 久久网站最新地址| 玖玖九九国产精品| 欧美一区二区三区影视| 午夜精品成人在线| 欧美日韩亚州综合| 亚洲午夜精品在线| 日本道色综合久久| 亚洲免费观看高清| 91美女福利视频| 中文字幕一区在线观看视频| voyeur盗摄精品| 1区2区3区欧美| 色系网站成人免费| 亚洲乱码中文字幕综合| 色av综合在线| 亚洲靠逼com| 色婷婷久久久久swag精品| 亚洲欧美电影一区二区| 99国产精品久久久久久久久久久| 国产精品视频第一区| 成人美女视频在线观看18| 日本一区二区综合亚洲| 成人一二三区视频| 国产精品第13页| 色综合激情五月| 一区二区三区中文在线| 7777女厕盗摄久久久| 美美哒免费高清在线观看视频一区二区 | 国产精品久久久久久久久免费相片| 国产老肥熟一区二区三区| 国产日韩欧美综合在线| av在线不卡电影| 一区二区三区日韩欧美精品| 欧美乱妇23p| 国产一区不卡视频| 成人欧美一区二区三区白人 | 91年精品国产| 亚洲欧美日韩久久| 欧美色老头old∨ideo| 日本午夜精品一区二区三区电影| 日韩一区二区三区在线视频| 国产在线一区二区| 亚洲免费视频成人| 欧美一区二区免费观在线| 国产大片一区二区| 一区二区在线免费| 精品久久久久一区| 成人福利在线看| 日韩精品亚洲专区| 国产日韩欧美精品电影三级在线| 99久久99久久精品免费看蜜桃| 亚洲国产成人91porn| 久久久久国产精品人| 色94色欧美sute亚洲线路一久 | 欧美日韩一区二区欧美激情| 精品一区二区三区蜜桃| 夜夜揉揉日日人人青青一国产精品| 在线91免费看| 成人伦理片在线| 老色鬼精品视频在线观看播放| 国产精品欧美极品| 日韩美女视频在线| 91国产丝袜在线播放| 国产福利一区二区| 日韩成人一区二区| 一区二区三区高清不卡| 国产三级欧美三级| 欧美三级日韩三级| 99久久伊人网影院| 国产精品一品视频| 加勒比av一区二区| 午夜久久久久久久久 | 91在线视频官网| 国产成人一级电影| 久久国产综合精品| 亚洲国产日韩精品| 亚洲激情成人在线| 国产精品不卡在线| 国产欧美视频一区二区| 欧美一卡二卡三卡| 在线观看亚洲精品视频| 97se亚洲国产综合自在线不卡| 激情综合色播激情啊| 欧美96一区二区免费视频| 亚洲成人动漫精品| 亚洲综合男人的天堂| 成人欧美一区二区三区视频网页| 国产三级一区二区三区| 精品国产乱码91久久久久久网站| 欧美人牲a欧美精品| 欧美日韩综合一区| 欧美精品日日鲁夜夜添| 欧美性猛片xxxx免费看久爱| 91麻豆蜜桃一区二区三区| 成人av网站免费| 成人av网站大全| 97国产精品videossex| 日本韩国视频一区二区| 欧洲一区二区av| 在线国产电影不卡| 欧美人狂配大交3d怪物一区 | 麻豆精品视频在线观看免费| 午夜欧美在线一二页| 污片在线观看一区二区| 日韩1区2区日韩1区2区| 久久99精品网久久| 国产精品自拍网站| 成人av影院在线| 欧美羞羞免费网站| 欧美一级免费观看| 久久新电视剧免费观看| 欧美国产日韩在线观看| 亚洲欧美另类在线| 丝袜美腿亚洲一区| 国产精品资源在线观看| 成人精品视频网站| 欧美在线你懂得| 日韩免费性生活视频播放| 国产午夜精品一区二区| 亚洲卡通动漫在线| 美女www一区二区| k8久久久一区二区三区 | 国产成人免费av在线| 99久久夜色精品国产网站| 欧美特级限制片免费在线观看| 91麻豆精品91久久久久同性| 精品国产乱码久久久久久浪潮| 国产精品国产精品国产专区不片| 亚洲综合色婷婷| 国产一区二区主播在线| 91行情网站电视在线观看高清版| 日韩视频123| 专区另类欧美日韩| 国内一区二区视频| 欧美日韩免费电影| 中文字幕一区二区三区视频| 午夜精品久久久久久不卡8050| 国产成人福利片| 日韩一区二区三区在线| 亚洲乱码日产精品bd| 国产美女在线精品| 日韩一区二区在线播放| 一区二区在线看| 99在线精品观看| 精品国产91亚洲一区二区三区婷婷 | 国产一区二区三区在线观看免费|