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

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

?? tenant.h

?? 英文版的 想要的話可以下載了 為大家服務
?? H
字號:
/*
 * TENANT.H
 * Patron Chapter 17
 *
 * Definitions and function prototypes for the CTenant class
 *
 * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
 *
 * Kraig Brockschmidt, Microsoft
 * Internet  :  kraigb@microsoft.com
 * Compuserve:  >INTERNET:kraigb@microsoft.com
 */


#ifndef _TENANT_H_
#define _TENANT_H_


//CHAPTER17MOD

class CImpIOleClientSite : public IOleClientSite
    {
    protected:
        ULONG               m_cRef;
        class CTenant      *m_pTen;
        LPUNKNOWN           m_pUnkOuter;

    public:
        CImpIOleClientSite(class CTenant *, LPUNKNOWN);
        ~CImpIOleClientSite(void);

        STDMETHODIMP QueryInterface(REFIID, PPVOID);
        STDMETHODIMP_(ULONG) AddRef(void);
        STDMETHODIMP_(ULONG) Release(void);

        STDMETHODIMP SaveObject(void);
        STDMETHODIMP GetMoniker(DWORD, DWORD, LPMONIKER *);
        STDMETHODIMP GetContainer(LPOLECONTAINER *);
        STDMETHODIMP ShowObject(void);
        STDMETHODIMP OnShowWindow(BOOL);
        STDMETHODIMP RequestNewObjectLayout(void);
    };

typedef CImpIOleClientSite *PCImpIOleClientSite;



class CImpIAdviseSink : public IAdviseSink
    {
    protected:
        ULONG               m_cRef;
        class CTenant      *m_pTen;
        LPUNKNOWN           m_pUnkOuter;

    public:
        CImpIAdviseSink(class CTenant *, LPUNKNOWN);
        ~CImpIAdviseSink(void);

        STDMETHODIMP QueryInterface(REFIID, PPVOID);
        STDMETHODIMP_(ULONG) AddRef(void);
        STDMETHODIMP_(ULONG) Release(void);

        STDMETHODIMP_(void)  OnDataChange(LPFORMATETC, LPSTGMEDIUM);
        STDMETHODIMP_(void)  OnViewChange(DWORD, LONG);
        STDMETHODIMP_(void)  OnRename(LPMONIKER);
        STDMETHODIMP_(void)  OnSave(void);
        STDMETHODIMP_(void)  OnClose(void);
    };


typedef CImpIAdviseSink *PCImpIAdviseSink;

//End CHAPTER17MOD


/*
 * Tenant class describing an individual piece of data in a page.
 * It knows where it sits, what object is inside of it, and what
 * its idenitifer is such that it can find it's storage within a
 * page.
 */

//Patron Objects clipboard format
typedef struct tagPATRONOBJECT
    {
    POINTL      ptl;        //Location of object
    POINTL      ptlPick;    //Pick point from drag-drop operation
    SIZEL       szl;        //Extents of object (absolute)
    FORMATETC   fe;         //Actual object format
    } PATRONOBJECT, *PPATRONOBJECT;



//Values for hit-testing, drawing, and resize-tracking tenants
#define CXYHANDLE       5

//Tenant types (not persistent, but determined at load time)
typedef enum
    {
    TENANTTYPE_NULL=0,
    TENANTTYPE_STATIC,
    //CHAPTER17MOD
    TENANTTYPE_EMBEDDEDOBJECT,
    TENANTTYPE_EMBEDDEDFILE,
    TENANTTYPE_EMBEDDEDOBJECTFROMDATA
    //End CHAPTER17MOD
    } TENANTTYPE, *PTENANTTYPE;


//State flags
#define TENANTSTATE_DEFAULT      0x00000000
#define TENANTSTATE_SELECTED     0x00000001

//CHAPTER17MOD
#define TENANTSTATE_OPEN         0x00000002
//End CHAPTER17MOD


/*
 * Persistent information we need to save for each tenant, which is
 * done in the tenant list instead of with each tenant.  Since this
 * is a small structure it's best not to blow another stream for it
 * (overhead).
 */
typedef struct tagTENANTINFO
    {
    DWORD       dwID;
    RECTL       rcl;
    FORMATETC   fe;             //Excludes ptd
    short       fSetExtent;     //Call IOleObject::SetExtent on Run
    } TENANTINFO, *PTENANTINFO;


class CTenant : public IUnknown
    {
    //CHAPTER17MOD
    friend CImpIOleClientSite;
    friend CImpIAdviseSink;
    //End CHAPTER17MOD

    private:
        HWND            m_hWnd;         //Pages window
        DWORD           m_dwID;         //Persistent DWORD ID
        DWORD           m_cOpens;       //Count calls to Open

        BOOL            m_fInitialized; //Something here?
        LPUNKNOWN       m_pObj;         //The object here
        LPSTORAGE       m_pIStorage;    //Sub-storage for tenant

        FORMATETC       m_fe;           //Used to create the object
        DWORD           m_dwState;      //State flags
        RECTL           m_rcl;          //Space of this object
        CLSID           m_clsID;        //Object class (for statics)
        BOOL            m_fSetExtent;   //Call SetExtent on next run

        class CPages   *m_pPG;          //Pages window

        //CHAPTER17MOD
        TENANTTYPE      m_tType;            //Type identifier
        ULONG           m_cRef;             //We're an object now
        LPOLEOBJECT     m_pIOleObject;      //IOleObject on m_pObj
        LPVIEWOBJECT2   m_pIViewObject2;    //IViewObject2 on m_pObj
        ULONG           m_grfMisc;          //OLEMISC flags
        BOOL            m_fRepaintEnabled;  //No redundant paints

        //Our interfaces
        PCImpIOleClientSite m_pImpIOleClientSite;
        PCImpIAdviseSink    m_pImpIAdviseSink;
        //End CHAPTER17MOD

    protected:
        //CHAPTER17MOD
        BOOL    ObjectInitialize(LPUNKNOWN, LPFORMATETC, DWORD);
        //End CHAPTER17MOD
        HRESULT CreateStatic(LPDATAOBJECT, LPFORMATETC
            , LPUNKNOWN *);

    public:
        CTenant(DWORD, HWND, CPages *);
        ~CTenant(void);

        //CHAPTER17MOD
        //Gotta have an IUnknown for delegation
        STDMETHODIMP QueryInterface(REFIID, PPVOID);
        STDMETHODIMP_(ULONG) AddRef(void);
        STDMETHODIMP_(ULONG) Release(void);
        //End CHAPTER17MOD

        DWORD       GetID(void);
        UINT        GetStorageName(LPOLESTR);
        //CHAPTER17MOD
        void        StorageGet(LPSTORAGE *);
        //End CHAPTER17MOD
        UINT        Create(TENANTTYPE, LPVOID, LPFORMATETC, PPOINTL
                        , LPSIZEL, LPSTORAGE, PPATRONOBJECT, DWORD);
        BOOL        Load(LPSTORAGE, PTENANTINFO);
        void        GetInfo(PTENANTINFO);
        BOOL        Open(LPSTORAGE);
        void        Close(BOOL);
        BOOL        Update(void);
        void        Destroy(LPSTORAGE);

        void        Select(BOOL);
        //CHAPTER17MOD
        void        ShowAsOpen(BOOL);
        void        ShowYourself(void);
        void        AddVerbMenu(HMENU, UINT);
        TENANTTYPE  TypeGet(void);
        void        CopyEmbeddedObject(LPDATAOBJECT, LPFORMATETC
                        , PPOINTL);
        void        NotifyOfRename(LPTSTR, LPVOID);
        //End CHAPTER17MOD

        BOOL        Activate(LONG);
        void        Draw(HDC, DVTARGETDEVICE *, HDC, int, int
                        , BOOL, BOOL);
        void        Repaint(void);
        void        Invalidate(void);

        //CHAPTER17MOD
        void        ObjectClassFormatAndIcon(LPCLSID, LPWORD
                        , LPTSTR *, HGLOBAL *, LPTSTR *);
        BOOL        SwitchOrUpdateAspect(HGLOBAL, BOOL);
        void        EnableRepaint(BOOL);
        //End CHAPTER17MOD

        void        ObjectGet(LPUNKNOWN *);
        void        FormatEtcGet(LPFORMATETC, BOOL);
        void        SizeGet(LPSIZEL, BOOL);
        //CHAPTER17MOD
        void        SizeSet(LPSIZEL, BOOL, BOOL);
        //End CHAPTER17MOD
        void        RectGet(LPRECTL, BOOL);
        //CHAPTER17MOD
        void        RectSet(LPRECTL, BOOL, BOOL);
        //End CHAPTER17MOD
    };


typedef CTenant *PCTenant;

//Return codes for Create
#define CREATE_FAILED               0
#define CREATE_GRAPHICONLY          1
#define CREATE_PLACEDOBJECT         2



#endif //_TENANT_H_

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久亚洲午夜电影| 91啪在线观看| 精品国产一区久久| 另类的小说在线视频另类成人小视频在线| 欧美午夜片在线看| 亚洲午夜羞羞片| 777亚洲妇女| 国模套图日韩精品一区二区| 国产喂奶挤奶一区二区三区| 97se狠狠狠综合亚洲狠狠| 伊人色综合久久天天人手人婷| 在线观看91视频| 日日夜夜精品视频天天综合网| 精品久久人人做人人爽| 成人午夜伦理影院| 亚洲国产日韩精品| 2020国产成人综合网| 成人免费不卡视频| 亚洲国产精品久久不卡毛片 | 色婷婷亚洲精品| 午夜精品一区二区三区电影天堂 | 成人美女在线视频| 亚洲午夜精品网| 欧美精品一区二区三区很污很色的| 国产成人免费在线视频| 亚洲精品欧美激情| 精品国产一区二区三区久久影院| 成人avav在线| 蜜臀国产一区二区三区在线播放| 中文字幕成人av| 欧美人牲a欧美精品| 丁香一区二区三区| 日韩av在线发布| 中文字幕第一区第二区| 欧美乱妇15p| 成人免费观看男女羞羞视频| 亚洲www啪成人一区二区麻豆| 久久久99免费| 91精品在线观看入口| 成人福利视频在线| 久久精品国产精品青草| 一区二区三区国产| 欧美国产日韩精品免费观看| 欧美绝品在线观看成人午夜影视| 成人国产亚洲欧美成人综合网| 欧美aaaaaa午夜精品| 亚洲精选在线视频| 国产日产欧产精品推荐色 | 91麻豆蜜桃一区二区三区| 精东粉嫩av免费一区二区三区| 亚洲一区视频在线| 欧美国产日本视频| 欧美精品一区视频| 91精品福利在线一区二区三区 | 国产精品一区二区视频| 午夜成人免费视频| 亚洲欧美电影一区二区| 日本一二三四高清不卡| 精品对白一区国产伦| 91精品国产一区二区三区 | 日韩精品久久久久久| 亚洲精品日日夜夜| 国产精品亲子乱子伦xxxx裸| 久久久久久一二三区| 日韩亚洲欧美中文三级| 欧美日韩卡一卡二| 欧美日韩午夜影院| 欧美午夜一区二区| 欧美色成人综合| 色激情天天射综合网| 色综合久久天天综合网| av午夜一区麻豆| 97久久久精品综合88久久| 成人免费不卡视频| 北条麻妃国产九九精品视频| 丁香婷婷综合网| 不卡免费追剧大全电视剧网站| 成人性生交大片免费看在线播放| 国产精品伊人色| 国产精品资源在线| 成人午夜视频福利| 99热这里都是精品| 91视视频在线观看入口直接观看www | 国产三级三级三级精品8ⅰ区| 精品国产第一区二区三区观看体验| 7777精品伊人久久久大香线蕉| 欧美日韩成人在线一区| 欧美一区二区精品久久911| 欧美美女一区二区三区| 6080国产精品一区二区| 日韩欧美视频在线| 精品粉嫩超白一线天av| 亚洲国产精品t66y| 成人免费在线观看入口| 亚洲图片欧美色图| 日韩av电影天堂| 黄色成人免费在线| 9色porny自拍视频一区二区| 一本一本大道香蕉久在线精品 | 樱花影视一区二区| 手机精品视频在线观看| 麻豆精品国产91久久久久久| 国内精品视频666| 成人av电影观看| 欧美日韩中文字幕一区| 欧美一级xxx| 国产精品久久福利| 亚洲电影第三页| 精一区二区三区| 成人国产在线观看| 欧美日韩成人综合| 久久久久97国产精华液好用吗| 亚洲人成在线播放网站岛国| 爽爽淫人综合网网站| 国产精品影视在线观看| 欧美专区日韩专区| 久久在线免费观看| 亚洲欧洲制服丝袜| 久久精品99国产精品| 91网站在线播放| 日韩视频不卡中文| 亚洲美女免费视频| 精品一区二区三区在线播放| 91视频com| 欧美zozo另类异族| 亚洲综合丁香婷婷六月香| 久久99精品久久久久久国产越南 | 久久99国产乱子伦精品免费| av成人免费在线观看| 欧美电视剧免费全集观看| 综合久久一区二区三区| 极品美女销魂一区二区三区免费| 91丨九色丨尤物| 国产丝袜在线精品| 蜜桃久久精品一区二区| 色综合一区二区| 久久欧美中文字幕| 日韩和欧美一区二区| 成年人网站91| 久久久久久久久久久黄色| 三级亚洲高清视频| 在线免费观看日韩欧美| 国产精品午夜免费| 久久精品国产99国产精品| 欧美日韩国产天堂| 一区二区视频在线| 菠萝蜜视频在线观看一区| 精品久久久久99| 日韩电影在线一区二区三区| 色综合久久久久久久久久久| 亚洲国产精品成人综合色在线婷婷| 蜜臀av性久久久久av蜜臀妖精| 欧美在线观看一区二区| 亚洲视频在线观看一区| 成人免费观看av| 中文成人av在线| 国产一区二区福利| 精品国产成人系列| 麻豆极品一区二区三区| 欧美麻豆精品久久久久久| 性久久久久久久| 欧美午夜片在线看| 亚洲国产视频在线| 欧美最新大片在线看| 亚洲精品国产无天堂网2021| 99精品在线观看视频| 亚洲人妖av一区二区| 91在线无精精品入口| 亚洲精品视频自拍| 色八戒一区二区三区| 亚洲精品成人悠悠色影视| 色老综合老女人久久久| 亚洲综合激情小说| 9191国产精品| 久久爱www久久做| 久久久一区二区三区捆绑**| 国产伦精品一区二区三区免费迷| www国产精品av| 国产高清无密码一区二区三区| 国产视频视频一区| 91啦中文在线观看| 亚洲高清不卡在线观看| 911国产精品| 韩国成人在线视频| 国产精品五月天| 色一情一乱一乱一91av| 亚洲福利视频一区| 欧美一区二区网站| 国产美女在线观看一区| 国产精品久久一卡二卡| 92精品国产成人观看免费| 亚洲国产wwwccc36天堂| 日韩女优电影在线观看| 国产mv日韩mv欧美| 一区二区三区色| 日韩一区二区三区电影| 成人丝袜高跟foot| 亚洲国产精品久久久男人的天堂| 日韩视频免费观看高清完整版 | 国产精品911|