⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oleglobl.h

📁 英文版的 想要的话可以下载了 为大家服务
💻 H
字号:
/*
 * OLEGLOBL.H
 *
 * Definitions an other globals specific to the OLE code.
 *
 * Copyright(c) Microsoft Corp. 1992-1994 All Rights Reserved
 * Win32 version, January 1994
 */

#ifdef MAKEOLESERVER

#ifndef CCHPATHMAX
#define CCHPATHMAX          256
#endif

#ifndef CCHFILENAME
#define CCHFILENAMEMAX      15
#endif


typedef LPOLESERVER    FAR *LPLPOLESERVER;
typedef LPOLESERVERDOC FAR *LPLPOLESERVERDOC;
typedef LPOLEOBJECT    FAR *LPLPOLEOBJECT;

typedef LPVOID (WINAPI *LPVOIDPROC) (LPOLEOBJECT, LPSTR);


typedef struct
    {
    LPOLEOBJECTVTBL     pvtbl;          //Standard
    BOOL                fRelease;       //Flag to watch if we need to wait
    LPOLECLIENT         pClient;        //Necessary for notifications
    HLOCAL              hMem;           //Memory handle to this structure
    } COSMOOBJECT;


typedef COSMOOBJECT FAR *LPCOSMOOBJECT;
#define CBCOSMOOBJECT sizeof(COSMOOBJECT)


typedef struct
    {
    LPOLESERVERDOCVTBL  pvtbl;          //Standard
    LHSERVERDOC         lh;             //Required by OleRegisterServerDoc
    BOOL                fRelease;       //Flag to watch if we need to wait
    ATOM                aObject;        //Name of the document's object
    ATOM                aClient;        //Name of the connected client
    HLOCAL              hMem;           //Memory handle to this structure
    LPCOSMOOBJECT       pObj;           //Last object we allocated
    } COSMODOC;


typedef COSMODOC FAR *LPCOSMODOC;
#define CBCOSMODOC sizeof(COSMODOC)


typedef struct
    {
    LPOLESERVERVTBL     pvtbl;          //Standard
    LHSERVER            lh;             //Required by OleRegisterServer
    BOOL                fRelease;       //Flag to watch if we need to wait
    BOOL                fEmbed;         //TRUE if we're embedding only
    BOOL                fLink;          //TRUE if we're linking only
    UINT                nCmdShow;       //OLE-modified window show command
    HWND                hWnd;           //Main application window
    HLOCAL              hMem;           //Memory handle to this structure
    LPCOSMODOC          pDoc;           //Last document we allocated
    } COSMOSERVER;

typedef COSMOSERVER FAR *LPCOSMOSERVER;
#define CBCOSMOSERVER sizeof(COSMOSERVER)


/*
 * Single data structure holding any OLE-specific global variables.
 */

typedef struct
    {
    LPCOSMOSERVER       pSvr;

    OLESERVERVTBL       vtblSvr;
    OLESERVERDOCVTBL    vtblDoc;
    OLEOBJECTVTBL       vtblObj;

    UINT                cfNative;
    UINT                cfOwnerLink;
    UINT                cfObjectLink;
    } XOLEGLOBALS;

typedef XOLEGLOBALS FAR *LPXOLEGLOBALS;
#define CBXOLEGLOBALS sizeof(XOLEGLOBALS)


//The single global
extern LPXOLEGLOBALS pOLE;


/*
 * STDTARGETDEVICE structure for ObjSetTargetDevice.
 */


typedef struct
    {
    //Offsets are pointers into the data field.
    UINT    deviceNameOffset;   //szDeviceName
    UINT    driverNameOffset;   //szDriverName
    UINT    portNameOffset;     //szPortName
    UINT    extDevModeOffset;   //DEVMODE structure
    UINT    extDevModeSize;     //Size of the DEVMOCE struct, for versioning.
    UINT    environmentOffset;  //Current MS-DOS environment, in a string
    UINT    environmentSize;    //Length of environment string.
    BYTE    data[];
    } STDTARGETDEVICE;

typedef STDTARGETDEVICE FAR * LPSTDTARGETDEVICE;
#define CBSTDTARGETDEVICE sizeof(STDTARGETDEVICE)






/*
 * Function prototypes for OLE-Specific functions.
 */



//OLECLIP.C
BOOL      WINAPI FOLECopyNative(LPXOLEGLOBALS);
BOOL      WINAPI FOLECopyLink(LPXOLEGLOBALS, BOOL, LPSTR);
HGLOBAL   WINAPI HLinkConstruct(LPSTR, LPSTR, LPSTR);


//OLEDOC.C
LPCOSMODOC  WINAPI PDocumentAllocate(LPOLESERVERDOCVTBL);   //Helper
void        WINAPI DocumentClean(LPCOSMODOC);               //Helper

OLESTATUS WINAPI DocClose(LPCOSMODOC);
OLESTATUS WINAPI DocGetObject(LPCOSMODOC, OLE_LPCSTR, LPLPOLEOBJECT, LPOLECLIENT);
OLESTATUS WINAPI DocExecute(LPCOSMODOC, HGLOBAL);
OLESTATUS WINAPI DocRelease(LPCOSMODOC);
OLESTATUS WINAPI DocSave(LPCOSMODOC);
OLESTATUS WINAPI DocSetColorScheme(LPCOSMODOC, OLE_CONST LOGPALETTE FAR *);
OLESTATUS WINAPI DocSetDocDimensions(LPCOSMODOC, OLE_CONST RECT FAR *);
OLESTATUS WINAPI DocSetHostNames(LPCOSMODOC, OLE_LPCSTR, OLE_LPCSTR);


//OLEEXIT.C
BOOL WINAPI FOLEExit(LPXOLEGLOBALS);


//OLEFILE.C
LPCOSMODOC WINAPI PDocRevokeAndCreate(LPXOLEGLOBALS);


//OLEINIT.C
BOOL      WINAPI FOLEInstanceInit(LPXOLEGLOBALS, HINSTANCE, LPSTR, LPSTR FAR *, UINT);


//OLEMISC.C
void      WINAPI MenuEmbeddingSet(HWND, LPSTR, BOOL);
void      WINAPI OLEClientNotify(LPCOSMOOBJECT, UINT);
BOOL      WINAPI FOLEReleaseWait(BOOL FAR *, LONG);



//OLEOBJ.C
LPCOSMOOBJECT WINAPI PObjectAllocate(LPOLEOBJECTVTBL);

LPVOID        WINAPI ObjQueryProtocol(LPCOSMOOBJECT, OLE_LPCSTR);
OLESTATUS     WINAPI ObjRelease(LPCOSMOOBJECT);
OLESTATUS     WINAPI ObjShow(LPCOSMOOBJECT, BOOL);
OLESTATUS     WINAPI ObjDoVerb(LPCOSMOOBJECT, UINT, BOOL, BOOL);
OLESTATUS     WINAPI ObjGetData(LPCOSMOOBJECT, OLECLIPFORMAT, HGLOBAL FAR *);
OLESTATUS     WINAPI ObjSetData(LPCOSMOOBJECT, OLECLIPFORMAT, HGLOBAL);
OLESTATUS     WINAPI ObjSetTargetDevice(LPCOSMOOBJECT, HGLOBAL);
OLESTATUS     WINAPI ObjSetBounds(LPCOSMOOBJECT, OLE_CONST RECT FAR *);
OLECLIPFORMAT WINAPI ObjEnumFormats(LPCOSMOOBJECT, OLECLIPFORMAT);
OLESTATUS     WINAPI ObjSetColorScheme(LPCOSMOOBJECT, OLE_CONST LOGPALETTE FAR *);


//OLESVR.C
LPCOSMOSERVER WINAPI PServerAllocate(LPOLESERVERVTBL);

OLESTATUS WINAPI ServerCreate(LPCOSMOSERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR, LPLPOLESERVERDOC);
OLESTATUS WINAPI ServerCreateFromTemplate(LPCOSMOSERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR, OLE_LPCSTR, LPLPOLESERVERDOC);
OLESTATUS WINAPI ServerEdit(LPCOSMOSERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR, LPLPOLESERVERDOC);
OLESTATUS WINAPI ServerExecute(LPCOSMOSERVER, HGLOBAL);
OLESTATUS WINAPI ServerExit(LPCOSMOSERVER);
OLESTATUS WINAPI ServerOpen(LPCOSMOSERVER, LHSERVERDOC, OLE_LPCSTR, LPLPOLESERVERDOC);
OLESTATUS WINAPI ServerRelease(LPCOSMOSERVER);


//OLEVTBL.C
BOOL      WINAPI FOLEVtblInitServer(HINSTANCE,   LPOLESERVERVTBL);
BOOL      WINAPI FOLEVtblInitDocument(HINSTANCE, LPOLESERVERDOCVTBL);
BOOL      WINAPI FOLEVtblInitObject(HINSTANCE,   LPOLEOBJECTVTBL);

void      WINAPI OLEVtblFreeServer(LPOLESERVERVTBL);
void      WINAPI OLEVtblFreeDocument(LPOLESERVERDOCVTBL);
void      WINAPI OLEVtblFreeObject(LPOLEOBJECTVTBL);


#endif //MAKEOLESERVER

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -