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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tenant.h

?? 英文版的 想要的話可以下載了 為大家服務
?? H
字號:
/*
 * TENANT.H
 * Patron Chapter 20
 *
 * 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_


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;



/*
 * 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,
    TENANTTYPE_EMBEDDEDOBJECT,
    TENANTTYPE_EMBEDDEDFILE,
    TENANTTYPE_EMBEDDEDOBJECTFROMDATA,
    //CHAPTER20MOD
    TENANTTYPE_LINKEDOBJECT,
    TENANTTYPE_LINKEDFILE,
    TENANTTYPE_LINKEDOBJECTFROMDATA
    //End CHAPTER20MOD
    } TENANTTYPE, *PTENANTTYPE;


//State flags
#define TENANTSTATE_DEFAULT      0x00000000
#define TENANTSTATE_SELECTED     0x00000001
#define TENANTSTATE_OPEN         0x00000002
//CHAPTER20MOD
#define TENANTSTATE_SHOWTYPE     0x00000004
//End CHAPTER20MOD


/*
 * 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
    {
    friend CImpIOleClientSite;
    friend CImpIAdviseSink;

    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

        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;

        //CHAPTER20MOD
        LPMONIKER       m_pmkFile;  //For IOleClientSite::GetMoniker
        //End CHAPTER20MOD

    //CHAPTER20MOD
    /*
     * This flag is used exculsively by the implementation of
     * IOleUILinkContainer on the page we're in for the Links
     * Dialog. Since we never use it ourselves, public here
     * is no big deal.
     */
    public:
        BOOL            m_fLinkAvail;
    //End CHAPTER20MOD

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

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

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

        DWORD       GetID(void);
        UINT        GetStorageName(LPOLESTR);
        void        StorageGet(LPSTORAGE *);
        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);
        void        ShowAsOpen(BOOL);
        void        ShowYourself(void);
        void        AddVerbMenu(HMENU, UINT);
        TENANTTYPE  TypeGet(void);
        void        CopyEmbeddedObject(LPDATAOBJECT, LPFORMATETC
                        , PPOINTL);
        //CHAPTER20MOD
        void        ShowObjectType(BOOL);
        void        NotifyOfRename(LPTSTR, LPMONIKER);
        //End CHAPTER20MOD

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

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

        //CHAPTER20MOD
        BOOL        FIsSelected(void);
        BOOL        ConvertToStatic(void);
        //End CHAPTER20MOD

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


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一区二区三区免费野_久草精品视频
亚洲国产精品自拍| www.99精品| www.视频一区| 日韩欧美精品在线视频| 成人免费一区二区三区在线观看| 午夜视频一区二区三区| 丁香六月综合激情| 精品三级av在线| 亚洲bt欧美bt精品777| www.av亚洲| 国产欧美视频在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 色综合天天狠狠| 国产目拍亚洲精品99久久精品| 日本三级韩国三级欧美三级| 91传媒视频在线播放| 中文字幕一区av| 懂色av一区二区三区免费观看| 日韩一区二区三区视频在线| 一区二区久久久久久| 97久久精品人人澡人人爽| 久久久久成人黄色影片| 奇米精品一区二区三区在线观看| 欧美性猛交xxxxxx富婆| 亚洲狼人国产精品| 色综合久久久网| 亚洲三级电影网站| 色系网站成人免费| 一区二区三区欧美在线观看| 成人av动漫在线| 国产精品美女久久久久久| 国产91精品一区二区麻豆网站| 久久免费国产精品| 国产不卡在线视频| 国产精品理伦片| 99精品欧美一区二区蜜桃免费 | 视频一区视频二区中文| 91国产丝袜在线播放| 亚洲最大成人综合| 欧美三级午夜理伦三级中视频| 午夜欧美2019年伦理| 欧美日韩高清影院| 日本欧美在线看| 日韩欧美在线网站| 国产二区国产一区在线观看| 国产精品毛片高清在线完整版| 9久草视频在线视频精品| 自拍偷拍国产精品| 欧美日韩成人一区二区| 3751色影院一区二区三区| 久久婷婷综合激情| 国产不卡免费视频| 精品福利一区二区三区 | 日韩一区二区在线观看视频播放| 亚洲一二三四在线观看| 欧美日韩国产精选| 91热门视频在线观看| 中文字幕亚洲精品在线观看| 老司机午夜精品| 国产精品久久久久影院色老大 | 欧美电影免费观看高清完整版在线观看| 99久久精品免费看| 懂色av一区二区三区免费观看| 久草精品在线观看| 日本不卡不码高清免费观看| 亚洲一区二区三区四区不卡| 亚洲精品亚洲人成人网| 亚洲视频在线一区观看| 国产精品免费观看视频| 欧美激情一区在线观看| 欧美激情一区二区三区全黄 | 成人av网站免费| 国产福利精品一区二区| 国产高清一区日本| 国产一区二区福利视频| 韩国成人福利片在线播放| 精品一区二区日韩| 精品一区二区久久| 国产一区二区按摩在线观看| 国产乱码精品一区二区三区五月婷| 久久超碰97人人做人人爱| 久久国产精品色婷婷| 精品亚洲免费视频| 国产福利一区在线| 成人一区二区三区视频| 91一区一区三区| 欧美专区在线观看一区| 欧美吻胸吃奶大尺度电影| 欧美乱妇一区二区三区不卡视频| 欧美久久一区二区| 欧美不卡一区二区三区四区| 精品国产sm最大网站免费看| 久久午夜国产精品| 一区视频在线播放| 亚洲成人午夜电影| 久久er精品视频| 国产超碰在线一区| 在线免费亚洲电影| 日韩一区二区精品在线观看| 精品国产免费久久| 亚洲欧洲日韩综合一区二区| 亚洲激情五月婷婷| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产精品一区在线观看乱码| 99国产欧美久久久精品| 欧美性猛交一区二区三区精品| 欧美一区二区三区婷婷月色| 国产亚洲欧洲997久久综合| 亚洲免费视频成人| 麻豆专区一区二区三区四区五区| 国产精品996| 欧美综合一区二区| 久久久久国色av免费看影院| 亚洲精品v日韩精品| 另类小说视频一区二区| 99re热这里只有精品免费视频| 欧美日韩成人综合| 国产精品乱码一区二区三区软件 | 精品成a人在线观看| 中文字幕中文在线不卡住| 亚洲国产成人av网| 国产91综合网| 欧美精品日日鲁夜夜添| 国产精品久久久久久久久晋中 | 一区二区不卡在线视频 午夜欧美不卡在| 日韩不卡一区二区三区| 99精品国产视频| 26uuu另类欧美| 亚洲国产成人av好男人在线观看| 国产成人综合亚洲网站| 欧美精三区欧美精三区| 日韩一区欧美一区| 久草这里只有精品视频| 欧美日韩国产美女| 中文字幕一区二区三区视频| 日韩电影在线一区二区| 不卡一区二区在线| 久久精品一区二区| 免费黄网站欧美| 欧美日韩免费在线视频| 1区2区3区欧美| 国产精品一区二区在线观看不卡| 5月丁香婷婷综合| 一区二区在线观看免费视频播放| 精品亚洲aⅴ乱码一区二区三区| 欧美三日本三级三级在线播放| 国产精品入口麻豆原神| 国产一区在线精品| 欧美r级在线观看| 天堂蜜桃一区二区三区 | 欧美日韩国产美| 亚洲欧美国产三级| 成人午夜在线免费| 国产亚洲欧美日韩俺去了| 韩国三级电影一区二区| 91精品国产91久久久久久最新毛片| 一区二区免费在线播放| 色综合久久中文综合久久97| 国产精品久久久久久一区二区三区 | 亚洲五月六月丁香激情| av亚洲精华国产精华精| 国产三级欧美三级| 国产乱对白刺激视频不卡| 欧美第一区第二区| 激情文学综合插| 久久一夜天堂av一区二区三区| 久久99热99| 精品久久久久久无| 国产乱人伦偷精品视频免下载 | 欧美日精品一区视频| 夜夜精品浪潮av一区二区三区| 色国产综合视频| 亚洲综合丝袜美腿| 欧美午夜影院一区| 日本不卡中文字幕| 日韩欧美一级特黄在线播放| 国内精品视频一区二区三区八戒| 日韩欧美国产系列| 国产成人在线视频网站| 中文在线免费一区三区高中清不卡| 成人精品高清在线| 亚洲综合久久久| 欧美丝袜丝nylons| 免费看欧美女人艹b| 久久精品一区二区三区四区| 波多野结衣中文一区| 综合分类小说区另类春色亚洲小说欧美| 色婷婷综合久色| 午夜精品免费在线| 久久亚洲综合色| av在线一区二区三区| 亚洲高清在线精品| 精品日韩欧美一区二区| 不卡视频一二三| 视频一区视频二区中文字幕| 亚洲精品在线电影| 色狠狠综合天天综合综合| 免费久久精品视频| 亚洲国产精品成人综合色在线婷婷 | 国产精品国产三级国产a|