1343 lines
43 KiB
C
1343 lines
43 KiB
C
/*****************************************************************************\
|
||
* *
|
||
* ole2.h - Main OLE2 header; includes all subcomponents *
|
||
* *
|
||
* OLE Version 2.01 for Win16 and Win32 *
|
||
* *
|
||
* Copyright (c) 1992-1993, Microsoft Corp. All rights reserved. *
|
||
* *
|
||
\*****************************************************************************/
|
||
|
||
|
||
#if !defined( _OLE2_H_ )
|
||
#define _OLE2_H_
|
||
|
||
#ifndef RC_INVOKED
|
||
#pragma warning(disable:4001)
|
||
#endif /* RC_INVOKED */
|
||
|
||
#include <string.h>
|
||
|
||
/****** Standard Object Definitions *****************************************/
|
||
|
||
#include <compobj.h>
|
||
|
||
|
||
// *************** FACILITY_ITF scodes common to all interfaces ************
|
||
//
|
||
// By convention, OLE interfaces divide the FACILITY_ITF range of errors
|
||
// into nonoverlapping subranges. If an interface returns a FACILITY_ITF
|
||
// scode, it must be from the range associated with that interface or from
|
||
// the shared range: OLE_E_FIRST...OLE_E_LAST.
|
||
//
|
||
|
||
// error codes
|
||
|
||
#define OLE_E_OLEVERB (OLE_E_FIRST)
|
||
// invalid OLEVERB structure
|
||
|
||
#define OLE_E_ADVF (OLE_E_FIRST+1)
|
||
// invalid advise flags
|
||
|
||
#define OLE_E_ENUM_NOMORE (OLE_E_FIRST+2)
|
||
// you can't enuemrate any more, because the associated data is missing
|
||
|
||
#define OLE_E_ADVISENOTSUPPORTED (OLE_E_FIRST+3)
|
||
// this implementation doesn't take advises
|
||
|
||
#define OLE_E_NOCONNECTION (OLE_E_FIRST+4)
|
||
// there is no connection for this connection id
|
||
|
||
#define OLE_E_NOTRUNNING (OLE_E_FIRST+5)
|
||
// need run the object to perform this operation
|
||
|
||
#define OLE_E_NOCACHE (OLE_E_FIRST+6)
|
||
// there is no cache to operate on
|
||
|
||
#define OLE_E_BLANK (OLE_E_FIRST+7)
|
||
// Uninitialized object
|
||
|
||
#define OLE_E_CLASSDIFF (OLE_E_FIRST+8)
|
||
// linked object's source class has changed
|
||
|
||
#define OLE_E_CANT_GETMONIKER (OLE_E_FIRST+9)
|
||
// not able to get the moniker of the object
|
||
|
||
#define OLE_E_CANT_BINDTOSOURCE (OLE_E_FIRST+10)
|
||
// not able to bind to the source
|
||
|
||
#define OLE_E_STATIC (OLE_E_FIRST+11)
|
||
// object is static, operation not allowed
|
||
|
||
#define OLE_E_PROMPTSAVECANCELLED (OLE_E_FIRST+12)
|
||
// user cancelled out of save dialog
|
||
|
||
#define OLE_E_INVALIDRECT (OLE_E_FIRST+13)
|
||
// invalid rectangle
|
||
|
||
#define OLE_E_WRONGCOMPOBJ (OLE_E_FIRST+14)
|
||
// compobj.dll is too old for the ole2.dll initialized
|
||
|
||
#define OLE_E_INVALIDHWND (OLE_E_FIRST+15)
|
||
// invalid window handle
|
||
|
||
#define OLE_E_NOT_INPLACEACTIVE (OLE_E_FIRST+16)
|
||
// object is not in any of the inplace active states
|
||
|
||
#define OLE_E_CANTCONVERT (OLE_E_FIRST+17)
|
||
// not able to convert the object
|
||
|
||
#define OLE_E_NOSTORAGE (OLE_E_FIRST+18)
|
||
// not able to perform the operation because object is not given storage yet.
|
||
|
||
|
||
#define DVGEN_E_FIRST (OLE_E_FIRST+100)
|
||
|
||
#define DV_E_FORMATETC (DVGEN_E_FIRST)
|
||
// invalid FORMATETC structure
|
||
|
||
#define DV_E_DVTARGETDEVICE (DVGEN_E_FIRST+1)
|
||
// invalid DVTARGETDEVICE structure
|
||
|
||
#define DV_E_STGMEDIUM (DVGEN_E_FIRST+2)
|
||
// invalid STDGMEDIUM structure
|
||
|
||
#define DV_E_STATDATA (DVGEN_E_FIRST+3)
|
||
// invalid STATDATA structure
|
||
|
||
#define DV_E_LINDEX (DVGEN_E_FIRST+4)
|
||
// invalid lindex
|
||
|
||
#define DV_E_TYMED (DVGEN_E_FIRST+5)
|
||
// invalid tymed
|
||
|
||
#define DV_E_CLIPFORMAT (DVGEN_E_FIRST+6)
|
||
// invalid clipboard format
|
||
|
||
#define DV_E_DVASPECT (DVGEN_E_FIRST+7)
|
||
// invalid aspect(s)
|
||
|
||
#define DV_E_DVTARGETDEVICE_SIZE (DVGEN_E_FIRST+8)
|
||
// tdSize paramter of the DVTARGETDEVICE structure is invalid
|
||
|
||
#define DV_E_NOIVIEWOBJECT (DVGEN_E_FIRST+9)
|
||
// object doesn't support IViewObject interface
|
||
|
||
|
||
// Success codes
|
||
|
||
#define OLE_S_USEREG (OLE_S_FIRST)
|
||
// use the reg database to provide the requested info
|
||
|
||
#define OLE_S_STATIC (OLE_S_FIRST+1)
|
||
// success, but static
|
||
|
||
#define OLE_S_MAC_CLIPFORMAT (OLE_S_FIRST+2)
|
||
// macintosh clipboard format
|
||
|
||
//*************************** Interface or API specific scodes *************
|
||
|
||
// Errors for OleConvertOLESTREAMToIStorage and OleConvertIStorageToOLESTREAM
|
||
|
||
// OLESTREAM Get method failed
|
||
#define CONVERT10_E_OLESTREAM_GET (CONVERT10_E_FIRST + 0)
|
||
|
||
// OLESTREAM Put method failed
|
||
#define CONVERT10_E_OLESTREAM_PUT (CONVERT10_E_FIRST + 1)
|
||
|
||
// Contents of the OLESTREAM not in correct format
|
||
#define CONVERT10_E_OLESTREAM_FMT (CONVERT10_E_FIRST + 2)
|
||
|
||
// There was in an error in a Windows GDI call while converting the bitmap
|
||
// to a DIB.
|
||
#define CONVERT10_E_OLESTREAM_BITMAP_TO_DIB (CONVERT10_E_FIRST + 3)
|
||
|
||
// Contents of the IStorage not in correct format
|
||
#define CONVERT10_E_STG_FMT (CONVERT10_E_FIRST + 4)
|
||
|
||
// Contents of IStorage is missing one of the standard streams ("\1CompObj",
|
||
// "\1Ole", "\2OlePres000"). This may be the storage for a DLL object, or a
|
||
// class that does not use the def handler.
|
||
#define CONVERT10_E_STG_NO_STD_STREAM (CONVERT10_E_FIRST + 5)
|
||
|
||
// There was in an error in a Windows GDI call while converting the DIB
|
||
// to a bitmap.
|
||
#define CONVERT10_E_STG_DIB_TO_BITMAP (CONVERT10_E_FIRST + 6)
|
||
|
||
|
||
// Returned by either API, this scode indicates that the original object
|
||
// had no presentation, therefore the converted object does not either.
|
||
#define CONVERT10_S_NO_PRESENTATION (CONVERT10_S_FIRST + 0)
|
||
|
||
|
||
// Errors for Clipboard functions
|
||
|
||
// OpenClipboard Failed
|
||
#define CLIPBRD_E_CANT_OPEN (CLIPBRD_E_FIRST + 0)
|
||
|
||
// EmptyClipboard Failed
|
||
#define CLIPBRD_E_CANT_EMPTY (CLIPBRD_E_FIRST + 1)
|
||
|
||
// SetClipboard Failed
|
||
#define CLIPBRD_E_CANT_SET (CLIPBRD_E_FIRST + 2)
|
||
|
||
// Data on clipboard is invalid
|
||
#define CLIPBRD_E_BAD_DATA (CLIPBRD_E_FIRST + 3)
|
||
|
||
// CloseClipboard Failed
|
||
#define CLIPBRD_E_CANT_CLOSE (CLIPBRD_E_FIRST + 4)
|
||
|
||
|
||
/****** OLE value types *****************************************************/
|
||
|
||
/* rendering options */
|
||
typedef enum tagOLERENDER
|
||
{
|
||
OLERENDER_NONE = 0,
|
||
OLERENDER_DRAW = 1,
|
||
OLERENDER_FORMAT = 2,
|
||
OLERENDER_ASIS = 3
|
||
} OLERENDER;
|
||
typedef OLERENDER FAR* LPOLERENDER;
|
||
|
||
// OLE verb; returned by IEnumOLEVERB
|
||
typedef struct FARSTRUCT tagOLEVERB
|
||
{
|
||
LONG lVerb;
|
||
LPXSTR lpszVerbName;
|
||
DWORD fuFlags;
|
||
DWORD grfAttribs;
|
||
} OLEVERB, FAR* LPOLEVERB;
|
||
|
||
|
||
// Bitwise verb attributes used in OLEVERB.grfAttribs
|
||
typedef enum tagOLEVERBATTRIB // bitwise
|
||
{
|
||
OLEVERBATTRIB_NEVERDIRTIES = 1,
|
||
OLEVERBATTRIB_ONCONTAINERMENU = 2
|
||
} OLEVERBATTRIB;
|
||
|
||
|
||
// IOleObject::GetUserType optons; determines which form of the string to use
|
||
typedef enum tagUSERCLASSTYPE
|
||
{
|
||
USERCLASSTYPE_FULL = 1,
|
||
USERCLASSTYPE_SHORT= 2,
|
||
USERCLASSTYPE_APPNAME= 3,
|
||
} USERCLASSTYPE;
|
||
|
||
|
||
// bits returned from IOleObject::GetMistStatus
|
||
typedef enum tagOLEMISC // bitwise
|
||
{
|
||
OLEMISC_RECOMPOSEONRESIZE = 1,
|
||
OLEMISC_ONLYICONIC = 2,
|
||
OLEMISC_INSERTNOTREPLACE = 4,
|
||
OLEMISC_STATIC = 8,
|
||
OLEMISC_CANTLINKINSIDE = 16,
|
||
OLEMISC_CANLINKBYOLE1 = 32,
|
||
OLEMISC_ISLINKOBJECT = 64,
|
||
OLEMISC_INSIDEOUT = 128,
|
||
OLEMISC_ACTIVATEWHENVISIBLE = 256,
|
||
OLEMISC_RENDERINGISDEVICEINDEPENDENT = 512
|
||
} OLEMISC;
|
||
|
||
|
||
// IOleObject::Close options
|
||
typedef enum tagOLECLOSE
|
||
{
|
||
OLECLOSE_SAVEIFDIRTY = 0,
|
||
OLECLOSE_NOSAVE = 1,
|
||
OLECLOSE_PROMPTSAVE = 2
|
||
} OLECLOSE;
|
||
|
||
|
||
// IOleObject::GetMoniker and IOleClientSite::GetMoniker options; determines
|
||
// if and how monikers should be assigned.
|
||
typedef enum tagOLEGETMONIKER
|
||
{
|
||
OLEGETMONIKER_ONLYIFTHERE=1,
|
||
OLEGETMONIKER_FORCEASSIGN=2,
|
||
OLEGETMONIKER_UNASSIGN=3,
|
||
OLEGETMONIKER_TEMPFORUSER=4
|
||
} OLEGETMONIKER;
|
||
|
||
|
||
// IOleObject::GetMoniker, IOleObject::SetMoniker and
|
||
// IOleClientSite::GetMoniker options; determines which moniker to use
|
||
typedef enum tagOLEWHICHMK
|
||
{
|
||
OLEWHICHMK_CONTAINER=1,
|
||
OLEWHICHMK_OBJREL=2,
|
||
OLEWHICHMK_OBJFULL=3
|
||
} OLEWHICHMK;
|
||
|
||
|
||
#ifdef WIN32
|
||
#define LPSIZEL PSIZEL
|
||
#else
|
||
typedef struct FARSTRUCT tagSIZEL
|
||
{
|
||
long cx;
|
||
long cy;
|
||
} SIZEL, FAR* LPSIZEL;
|
||
#endif
|
||
|
||
|
||
#ifdef WIN32
|
||
#define LPRECTL PRECTL
|
||
#else
|
||
typedef struct FARSTRUCT tagRECTL
|
||
{
|
||
long left;
|
||
long top;
|
||
long right;
|
||
long bottom;
|
||
} RECTL, FAR* LPRECTL;
|
||
|
||
typedef struct FARSTRUCT tagPOINTL {
|
||
LONG x;
|
||
LONG y;
|
||
} POINTL;
|
||
|
||
#endif
|
||
|
||
|
||
#ifndef LPCRECT
|
||
typedef const RECT FAR* LPCRECT;
|
||
#endif
|
||
|
||
#ifndef LPCRECTL
|
||
typedef const RECTL FAR* LPCRECTL;
|
||
#endif
|
||
|
||
|
||
// for OleCreateEmbeddingHelper flags; roles in low word; options in high word
|
||
#define EMBDHLP_INPROC_HANDLER 0x0000L // role is handler; implementation is
|
||
// default handler; pCF can be NULL
|
||
#define EMBDHLP_INPROC_SERVER 0x0001L // role is server; pCF can't be NULL
|
||
|
||
#define EMBDHLP_CREATENOW 0x00000000L // create using pCF immediately; if pCF
|
||
// is NULL, uses std remoting handler
|
||
#define EMBDHLP_DELAYCREATE 0x00010000L // delayed create; must supply pCF
|
||
|
||
|
||
// NOTE: OleCreateEmbeddingHelper(clsid, pUnkOuter,
|
||
// EMBDHLP_INPROC_HANDLER | EMBDHLP_CREATENOW, NULL, riid, lplpObj)
|
||
// is the same as OleCreateDefaultHandler(clsid, pUnkOuter, riid, lplpObj);
|
||
// i.e., the embedding helper is the default handler in various roles.
|
||
|
||
//Win32 OLE does not support Ole1.0-Ole2.0 interoperability
|
||
|
||
#ifndef WIN32
|
||
|
||
/***** OLE 1.0 OLESTREAM declarations *************************************/
|
||
|
||
typedef struct _OLESTREAM FAR* LPOLESTREAM;
|
||
|
||
typedef struct _OLESTREAMVTBL
|
||
{
|
||
DWORD (CALLBACK* Get)(LPOLESTREAM, void FAR*, DWORD);
|
||
DWORD (CALLBACK* Put)(LPOLESTREAM, const void FAR*, DWORD);
|
||
} OLESTREAMVTBL;
|
||
typedef OLESTREAMVTBL FAR* LPOLESTREAMVTBL;
|
||
|
||
typedef struct _OLESTREAM
|
||
{
|
||
LPOLESTREAMVTBL lpstbl;
|
||
} OLESTREAM;
|
||
|
||
#endif // !WIN32
|
||
|
||
|
||
/****** Clipboard Data structures *****************************************/
|
||
|
||
typedef struct tagOBJECTDESCRIPTOR
|
||
{
|
||
ULONG cbSize; // Size of structure in bytes
|
||
CLSID clsid; // CLSID of data being transferred
|
||
DWORD dwDrawAspect; // Display aspect of the object
|
||
// normally DVASPECT_CONTENT or ICON.
|
||
// dwDrawAspect will be 0 (which is NOT
|
||
// DVASPECT_CONTENT) if the copier or
|
||
// dragsource didn't draw the object to
|
||
// begin with.
|
||
SIZEL sizel; // size of the object in HIMETRIC
|
||
// sizel is opt.: will be (0,0) for apps
|
||
// which don't draw the object being
|
||
// transferred
|
||
POINTL pointl; // Offset in HIMETRIC units from the
|
||
// upper-left corner of the obj where the
|
||
// mouse went down for the drag.
|
||
// NOTE: y coordinates increase downward.
|
||
// x coordinates increase to right
|
||
// pointl is opt.; it is only meaningful
|
||
// if object is transfered via drag/drop.
|
||
// (0, 0) if mouse position is unspecified
|
||
// (eg. when obj transfered via clipboard)
|
||
DWORD dwStatus; // Misc. status flags for object. Flags are
|
||
// defined by OLEMISC enum. these flags
|
||
// are as would be returned
|
||
// by IOleObject::GetMiscStatus.
|
||
DWORD dwFullUserTypeName; // Offset from beginning of structure to
|
||
// null-terminated string that specifies
|
||
// Full User Type Name of the object.
|
||
// 0 indicates string not present.
|
||
DWORD dwSrcOfCopy; // Offset from beginning of structure to
|
||
// null-terminated string that specifies
|
||
// source of the transfer.
|
||
// dwSrcOfCOpy is normally implemented as
|
||
// the display name of the temp-for-user
|
||
// moniker which identifies the source of
|
||
// the data.
|
||
// 0 indicates string not present.
|
||
// NOTE: moniker assignment is NOT forced.
|
||
// see IOleObject::GetMoniker(
|
||
// OLEGETMONIKER_TEMPFORUSER)
|
||
|
||
/* variable sized string data may appear here */
|
||
|
||
} OBJECTDESCRIPTOR, *POBJECTDESCRIPTOR, FAR *LPOBJECTDESCRIPTOR,
|
||
LINKSRCDESCRIPTOR, *PLINKSRCDESCRIPTOR, FAR *LPLINKSRCDESCRIPTOR;
|
||
|
||
|
||
|
||
/* verbs */
|
||
#define OLEIVERB_PRIMARY (0L)
|
||
#define OLEIVERB_SHOW (-1L)
|
||
#define OLEIVERB_OPEN (-2L)
|
||
#define OLEIVERB_HIDE (-3L)
|
||
#define OLEIVERB_UIACTIVATE (-4L)
|
||
#define OLEIVERB_INPLACEACTIVATE (-5L)
|
||
#define OLEIVERB_DISCARDUNDOSTATE (-6L)
|
||
|
||
|
||
// forward type declarations
|
||
#if defined(__cplusplus)
|
||
interface IOleClientSite;
|
||
interface IOleContainer;
|
||
interface IOleObject;
|
||
#else
|
||
typedef interface IOleClientSite IOleClientSite;
|
||
typedef interface IOleContainer IOleContainer;
|
||
typedef interface IOleObject IOleObject;
|
||
#endif
|
||
|
||
typedef IOleObject FAR* LPOLEOBJECT;
|
||
typedef IOleClientSite FAR* LPOLECLIENTSITE;
|
||
typedef IOleContainer FAR* LPOLECONTAINER;
|
||
|
||
|
||
/****** OLE GUIDs *********************************************************/
|
||
|
||
#ifndef INITGUID
|
||
#include "oleguid.h"
|
||
#endif
|
||
|
||
|
||
/****** Other Major Interfaces ********************************************/
|
||
|
||
#include <dvobj.h>
|
||
|
||
#include <storage.h>
|
||
|
||
|
||
|
||
/****** IDrop??? Interfaces ********************************************/
|
||
|
||
#define MK_ALT 0x0020
|
||
|
||
|
||
#define DROPEFFECT_NONE 0
|
||
#define DROPEFFECT_COPY 1
|
||
#define DROPEFFECT_MOVE 2
|
||
#define DROPEFFECT_LINK 4
|
||
#define DROPEFFECT_SCROLL 0x80000000
|
||
|
||
// default inset-width of the hot zone, in pixels
|
||
// typical use: GetProfileInt("windows","DragScrollInset",DD_DEFSCROLLINSET)
|
||
#define DD_DEFSCROLLINSET 11
|
||
|
||
// default delay before scrolling, in milliseconds
|
||
// typical use: GetProfileInt("windows","DragScrollDelay",DD_DEFSCROLLDELAY)
|
||
#define DD_DEFSCROLLDELAY 50
|
||
|
||
// default scroll interval, in milliseconds
|
||
// typical use: GetProfileInt("windows","DragScrollInterval",
|
||
// DD_DEFSCROLLINTERVAL)
|
||
#define DD_DEFSCROLLINTERVAL 50
|
||
|
||
// default delay before dragging should start, in milliseconds
|
||
// typical use: GetProfileInt("windows", "DragDelay", DD_DEFDRAGDELAY)
|
||
#define DD_DEFDRAGDELAY 200
|
||
|
||
// default minimum distance (radius) before dragging should start, in pixels
|
||
// typical use: GetProfileInt("windows", "DragMinDist", DD_DEFDRAGMINDIST)
|
||
#define DD_DEFDRAGMINDIST 2
|
||
|
||
|
||
|
||
/* Dragdrop specific error codes */
|
||
|
||
#define DRAGDROP_E_NOTREGISTERED (DRAGDROP_E_FIRST)
|
||
// trying to revoke a drop target that has not been registered
|
||
|
||
#define DRAGDROP_E_ALREADYREGISTERED (DRAGDROP_E_FIRST+1)
|
||
// this window has already been registered as a drop target
|
||
|
||
#define DRAGDROP_E_INVALIDHWND (DRAGDROP_E_FIRST+2)
|
||
// invalid HWND
|
||
|
||
|
||
#define DRAGDROP_S_DROP (DRAGDROP_S_FIRST + 0)
|
||
// successful drop took place
|
||
|
||
#define DRAGDROP_S_CANCEL (DRAGDROP_S_FIRST + 1)
|
||
// drag-drop operation canceled
|
||
|
||
#define DRAGDROP_S_USEDEFAULTCURSORS (DRAGDROP_S_FIRST + 2)
|
||
// use the default cursor
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IDropTarget
|
||
|
||
DECLARE_INTERFACE_(IDropTarget, IUnknown)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IDropTarget methods ***
|
||
STDMETHOD(DragEnter) (THIS_ LPDATAOBJECT pDataObj, DWORD grfKeyState, POINTL pt, LPDWORD pdwEffect) PURE;
|
||
STDMETHOD(DragOver) (THIS_ DWORD grfKeyState, POINTL pt, LPDWORD pdwEffect) PURE;
|
||
STDMETHOD(DragLeave) (THIS) PURE;
|
||
STDMETHOD(Drop) (THIS_ LPDATAOBJECT pDataObj, DWORD grfKeyState, POINTL pt, LPDWORD pdwEffect) PURE;
|
||
};
|
||
typedef IDropTarget FAR* LPDROPTARGET;
|
||
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IDropSource
|
||
|
||
DECLARE_INTERFACE_(IDropSource, IUnknown)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IDropSource methods ***
|
||
STDMETHOD(QueryContinueDrag) (THIS_ BOOL fEscapePressed, DWORD grfKeyState) PURE;
|
||
STDMETHOD(GiveFeedback) (THIS_ DWORD dwEffect) PURE;
|
||
};
|
||
typedef IDropSource FAR* LPDROPSOURCE;
|
||
|
||
|
||
|
||
/****** IPersist??? Interfaces ********************************************/
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IPersist
|
||
|
||
DECLARE_INTERFACE_(IPersist, IUnknown)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IPersist methods ***
|
||
STDMETHOD(GetClassID) (THIS_ LPCLSID lpClassID) PURE;
|
||
};
|
||
typedef IPersist FAR* LPPERSIST;
|
||
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IPersistStorage
|
||
|
||
DECLARE_INTERFACE_(IPersistStorage, IPersist)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IPersist methods ***
|
||
STDMETHOD(GetClassID) (THIS_ LPCLSID lpClassID) PURE;
|
||
|
||
// *** IPersistStorage methods ***
|
||
STDMETHOD(IsDirty) (THIS) PURE;
|
||
STDMETHOD(InitNew) (THIS_ LPSTORAGE pStg) PURE;
|
||
STDMETHOD(Load) (THIS_ LPSTORAGE pStg) PURE;
|
||
STDMETHOD(Save) (THIS_ LPSTORAGE pStgSave, BOOL fSameAsLoad) PURE;
|
||
STDMETHOD(SaveCompleted) (THIS_ LPSTORAGE pStgNew) PURE;
|
||
STDMETHOD(HandsOffStorage) (THIS) PURE;
|
||
};
|
||
typedef IPersistStorage FAR* LPPERSISTSTORAGE;
|
||
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IPersistStream
|
||
|
||
DECLARE_INTERFACE_(IPersistStream, IPersist)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IPersist methods ***
|
||
STDMETHOD(GetClassID) (THIS_ LPCLSID lpClassID) PURE;
|
||
|
||
// *** IPersistStream methods ***
|
||
STDMETHOD(IsDirty) (THIS) PURE;
|
||
STDMETHOD(Load) (THIS_ LPSTREAM pStm) PURE;
|
||
STDMETHOD(Save) (THIS_ LPSTREAM pStm,
|
||
BOOL fClearDirty) PURE;
|
||
STDMETHOD(GetSizeMax) (THIS_ ULARGE_INTEGER FAR* pcbSize) PURE;
|
||
};
|
||
typedef IPersistStream FAR* LPPERSISTSTREAM;
|
||
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IPersistFile
|
||
|
||
DECLARE_INTERFACE_(IPersistFile, IPersist)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IPersist methods ***
|
||
STDMETHOD(GetClassID) (THIS_ LPCLSID lpClassID) PURE;
|
||
|
||
// *** IPersistFile methods ***
|
||
STDMETHOD(IsDirty) (THIS) PURE;
|
||
STDMETHOD(Load) (THIS_ LPCXSTR lpszFileName, DWORD grfMode) PURE;
|
||
STDMETHOD(Save) (THIS_ LPCXSTR lpszFileName, BOOL fRemember) PURE;
|
||
STDMETHOD(SaveCompleted) (THIS_ LPCXSTR lpszFileName) PURE;
|
||
STDMETHOD(GetCurFile) (THIS_ LPXSTR FAR* lplpszFileName) PURE;
|
||
};
|
||
typedef IPersistFile FAR* LPPERSISTFILE;
|
||
|
||
|
||
/****** Moniker Object Interfaces ******************************************/
|
||
|
||
#include <moniker.h>
|
||
|
||
|
||
/****** OLE Object Interfaces ******************************************/
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IEnumOLEVERB
|
||
|
||
DECLARE_INTERFACE_(IEnumOLEVERB, IUnknown)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IEnumOLEVERB methods ***
|
||
STDMETHOD(Next) (THIS_ ULONG celt, LPOLEVERB rgelt, ULONG FAR* pceltFetched) PURE;
|
||
STDMETHOD(Skip) (THIS_ ULONG celt) PURE;
|
||
STDMETHOD(Reset) (THIS) PURE;
|
||
STDMETHOD(Clone) (THIS_ IEnumOLEVERB FAR* FAR* ppenm) PURE;
|
||
};
|
||
typedef IEnumOLEVERB FAR* LPENUMOLEVERB;
|
||
|
||
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IOleObject
|
||
|
||
#define OLEOBJ_E_NOVERBS (OLEOBJ_E_FIRST + 0)
|
||
|
||
#define OLEOBJ_E_INVALIDVERB (OLEOBJ_E_FIRST + 1)
|
||
|
||
#define OLEOBJ_S_INVALIDVERB (OLEOBJ_S_FIRST + 0)
|
||
|
||
#define OLEOBJ_S_CANNOT_DOVERB_NOW (OLEOBJ_S_FIRST + 1)
|
||
// verb number is valid but verb cannot be done now, for instance
|
||
// hiding a link or hiding a visible OLE 1.0 server
|
||
|
||
#define OLEOBJ_S_INVALIDHWND (OLEOBJ_S_FIRST + 2)
|
||
// invalid hwnd passed
|
||
|
||
|
||
DECLARE_INTERFACE_(IOleObject, IUnknown)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IOleObject methods ***
|
||
STDMETHOD(SetClientSite) (THIS_ LPOLECLIENTSITE pClientSite) PURE;
|
||
STDMETHOD(GetClientSite) (THIS_ LPOLECLIENTSITE FAR* ppClientSite) PURE;
|
||
STDMETHOD(SetHostNames) (THIS_ LPCXSTR szContainerApp, LPCXSTR szContainerObj) PURE;
|
||
STDMETHOD(Close) (THIS_ DWORD dwSaveOption) PURE;
|
||
STDMETHOD(SetMoniker) (THIS_ DWORD dwWhichMoniker, LPMONIKER pmk) PURE;
|
||
STDMETHOD(GetMoniker) (THIS_ DWORD dwAssign, DWORD dwWhichMoniker,
|
||
LPMONIKER FAR* ppmk) PURE;
|
||
STDMETHOD(InitFromData) (THIS_ LPDATAOBJECT pDataObject,
|
||
BOOL fCreation,
|
||
DWORD dwReserved) PURE;
|
||
STDMETHOD(GetClipboardData) (THIS_ DWORD dwReserved,
|
||
LPDATAOBJECT FAR* ppDataObject) PURE;
|
||
STDMETHOD(DoVerb) (THIS_ LONG iVerb,
|
||
LPMSG lpmsg,
|
||
LPOLECLIENTSITE pActiveSite,
|
||
LONG lindex,
|
||
HWND hwndParent,
|
||
LPCRECT lprcPosRect) PURE;
|
||
STDMETHOD(EnumVerbs) (THIS_ LPENUMOLEVERB FAR* ppenumOleVerb) PURE;
|
||
STDMETHOD(Update) (THIS) PURE;
|
||
STDMETHOD(IsUpToDate) (THIS) PURE;
|
||
STDMETHOD(GetUserClassID) (THIS_ CLSID FAR* pClsid) PURE;
|
||
STDMETHOD(GetUserType) (THIS_ DWORD dwFormOfType, LPXSTR FAR* pszUserType) PURE;
|
||
STDMETHOD(SetExtent) (THIS_ DWORD dwDrawAspect, LPSIZEL lpsizel) PURE;
|
||
STDMETHOD(GetExtent) (THIS_ DWORD dwDrawAspect, LPSIZEL lpsizel) PURE;
|
||
|
||
STDMETHOD(Advise)(THIS_ LPADVISESINK pAdvSink, DWORD FAR* pdwConnection) PURE;
|
||
STDMETHOD(Unadvise)(THIS_ DWORD dwConnection) PURE;
|
||
STDMETHOD(EnumAdvise) (THIS_ LPENUMSTATDATA FAR* ppenumAdvise) PURE;
|
||
STDMETHOD(GetMiscStatus) (THIS_ DWORD dwAspect, DWORD FAR* pdwStatus) PURE;
|
||
STDMETHOD(SetColorScheme) (THIS_ LPLOGPALETTE lpLogpal) PURE;
|
||
};
|
||
typedef IOleObject FAR* LPOLEOBJECT;
|
||
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IOleClientSite
|
||
|
||
DECLARE_INTERFACE_(IOleClientSite, IUnknown)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IOleClientSite methods ***
|
||
STDMETHOD(SaveObject) (THIS) PURE;
|
||
STDMETHOD(GetMoniker) (THIS_ DWORD dwAssign, DWORD dwWhichMoniker,
|
||
LPMONIKER FAR* ppmk) PURE;
|
||
STDMETHOD(GetContainer) (THIS_ LPOLECONTAINER FAR* ppContainer) PURE;
|
||
STDMETHOD(ShowObject) (THIS) PURE;
|
||
STDMETHOD(OnShowWindow) (THIS_ BOOL fShow) PURE;
|
||
STDMETHOD(RequestNewObjectLayout) (THIS) PURE;
|
||
};
|
||
typedef IOleClientSite FAR* LPOLECLIENTSITE;
|
||
|
||
|
||
/****** OLE Runnable Object Interface **********************************/
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IRunnableObject
|
||
|
||
DECLARE_INTERFACE_(IRunnableObject, IUnknown)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IRunnableObject methods ***
|
||
STDMETHOD(GetRunningClass) (THIS_ LPCLSID lpClsid) PURE;
|
||
STDMETHOD(Run) (THIS_ LPBINDCTX pbc) PURE;
|
||
STDMETHOD_(BOOL, IsRunning) (THIS) PURE;
|
||
STDMETHOD(LockRunning)(THIS_ BOOL fLock, BOOL fLastUnlockCloses) PURE;
|
||
STDMETHOD(SetContainedObject)(THIS_ BOOL fContained) PURE;
|
||
};
|
||
typedef IRunnableObject FAR* LPRUNNABLEOBJECT;
|
||
|
||
|
||
/****** OLE Container Interfaces ***************************************/
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IParseDisplayName
|
||
|
||
DECLARE_INTERFACE_(IParseDisplayName, IUnknown)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IParseDisplayName method ***
|
||
STDMETHOD(ParseDisplayName) (THIS_ LPBC pbc, LPXSTR lpszDisplayName,
|
||
ULONG FAR* pchEaten, LPMONIKER FAR* ppmkOut) PURE;
|
||
};
|
||
typedef IParseDisplayName FAR* LPPARSEDISPLAYNAME;
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IOleContainer
|
||
|
||
DECLARE_INTERFACE_(IOleContainer, IParseDisplayName)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IParseDisplayName method ***
|
||
STDMETHOD(ParseDisplayName) (THIS_ LPBC pbc, LPXSTR lpszDisplayName,
|
||
ULONG FAR* pchEaten, LPMONIKER FAR* ppmkOut) PURE;
|
||
|
||
// *** IOleContainer methods ***
|
||
STDMETHOD(EnumObjects) ( DWORD grfFlags, LPENUMUNKNOWN FAR* ppenumUnknown) PURE;
|
||
STDMETHOD(LockContainer) (THIS_ BOOL fLock) PURE;
|
||
};
|
||
typedef IOleContainer FAR* LPOLECONTAINER;
|
||
|
||
|
||
typedef enum tagBINDSPEED
|
||
{
|
||
BINDSPEED_INDEFINITE = 1,
|
||
BINDSPEED_MODERATE = 2,
|
||
BINDSPEED_IMMEDIATE = 3
|
||
} BINDSPEED;
|
||
|
||
typedef enum tagOLECONTF
|
||
{
|
||
OLECONTF_EMBEDDINGS = 1,
|
||
OLECONTF_LINKS = 2,
|
||
OLECONTF_OTHERS = 4,
|
||
OLECONTF_ONLYUSER = 8,
|
||
OLECONTF_ONLYIFRUNNING = 16
|
||
} OLECONTF;
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IOleItemContainer
|
||
|
||
DECLARE_INTERFACE_(IOleItemContainer, IOleContainer)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IParseDisplayName method ***
|
||
STDMETHOD(ParseDisplayName) (THIS_ LPBC pbc, LPXSTR lpszDisplayName,
|
||
ULONG FAR* pchEaten, LPMONIKER FAR* ppmkOut) PURE;
|
||
|
||
// *** IOleContainer methods ***
|
||
STDMETHOD(EnumObjects) (THIS_ DWORD grfFlags, LPENUMUNKNOWN FAR* ppenumUnknown) PURE;
|
||
STDMETHOD(LockContainer) (THIS_ BOOL fLock) PURE;
|
||
|
||
// *** IOleItemContainer methods ***
|
||
STDMETHOD(GetObject) (THIS_ LPXSTR lpszItem, DWORD dwSpeedNeeded,
|
||
LPBINDCTX pbc, REFIID riid, LPVOID FAR* ppvObject) PURE;
|
||
STDMETHOD(GetObjectStorage) (THIS_ LPXSTR lpszItem, LPBINDCTX pbc,
|
||
REFIID riid, LPVOID FAR* ppvStorage) PURE;
|
||
STDMETHOD(IsRunning) (THIS_ LPXSTR lpszItem) PURE;
|
||
};
|
||
typedef IOleItemContainer FAR* LPOLEITEMCONTAINER;
|
||
|
||
|
||
/****** OLE Advise Holder Interface ***************************************/
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IOleAdviseHolder
|
||
|
||
DECLARE_INTERFACE_(IOleAdviseHolder, IUnknown)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppv) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IOleAdviseHolder methods ***
|
||
STDMETHOD(Advise)(THIS_ LPADVISESINK pAdvise, DWORD FAR* pdwConnection) PURE;
|
||
STDMETHOD(Unadvise)(THIS_ DWORD dwConnection) PURE;
|
||
STDMETHOD(EnumAdvise)(THIS_ LPENUMSTATDATA FAR* ppenumAdvise) PURE;
|
||
|
||
STDMETHOD(SendOnRename)(THIS_ LPMONIKER pmk) PURE;
|
||
STDMETHOD(SendOnSave)(THIS) PURE;
|
||
STDMETHOD(SendOnClose)(THIS) PURE;
|
||
};
|
||
typedef IOleAdviseHolder FAR* LPOLEADVISEHOLDER;
|
||
|
||
|
||
/****** OLE Link Interface ************************************************/
|
||
|
||
/* Link update options */
|
||
typedef enum tagOLEUPDATE
|
||
{
|
||
OLEUPDATE_ALWAYS=1,
|
||
OLEUPDATE_ONCALL=3
|
||
} OLEUPDATE;
|
||
typedef OLEUPDATE FAR* LPOLEUPDATE;
|
||
|
||
|
||
// for IOleLink::BindToSource
|
||
typedef enum tagOLELINKBIND
|
||
{
|
||
OLELINKBIND_EVENIFCLASSDIFF = 1,
|
||
} OLELINKBIND;
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IOleLink
|
||
|
||
DECLARE_INTERFACE_(IOleLink, IUnknown)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IOleLink methods ***
|
||
STDMETHOD(SetUpdateOptions) (THIS_ DWORD dwUpdateOpt) PURE;
|
||
STDMETHOD(GetUpdateOptions) (THIS_ LPDWORD pdwUpdateOpt) PURE;
|
||
STDMETHOD(SetSourceMoniker) (THIS_ LPMONIKER pmk, REFCLSID rclsid) PURE;
|
||
STDMETHOD(GetSourceMoniker) (THIS_ LPMONIKER FAR* ppmk) PURE;
|
||
STDMETHOD(SetSourceDisplayName) (THIS_ LPCXSTR lpszDisplayName) PURE;
|
||
STDMETHOD(GetSourceDisplayName) (THIS_ LPXSTR FAR* lplpszDisplayName) PURE;
|
||
STDMETHOD(BindToSource) (THIS_ DWORD bindflags, LPBINDCTX pbc) PURE;
|
||
STDMETHOD(BindIfRunning) (THIS) PURE;
|
||
STDMETHOD(GetBoundSource) (THIS_ LPUNKNOWN FAR* ppUnk) PURE;
|
||
STDMETHOD(UnbindSource) (THIS) PURE;
|
||
STDMETHOD(Update) (THIS_ LPBINDCTX pbc) PURE;
|
||
};
|
||
typedef IOleLink FAR* LPOLELINK;
|
||
|
||
|
||
/****** OLE InPlace Editing Interfaces ************************************/
|
||
|
||
#ifdef _MAC
|
||
typedef Handle HOLEMENU;
|
||
typedef long SIZE;
|
||
typedef long HACCEL;
|
||
#else
|
||
DECLARE_HANDLE(HOLEMENU);
|
||
#endif
|
||
|
||
typedef struct FARSTRUCT tagOIFI // OleInPlaceFrameInfo
|
||
{
|
||
UINT cb;
|
||
BOOL fMDIApp;
|
||
HWND hwndFrame;
|
||
HACCEL haccel;
|
||
int cAccelEntries;
|
||
} OLEINPLACEFRAMEINFO, FAR* LPOLEINPLACEFRAMEINFO;
|
||
|
||
|
||
typedef struct FARSTRUCT tagOleMenuGroupWidths
|
||
{
|
||
LONG width[6];
|
||
} OLEMENUGROUPWIDTHS, FAR* LPOLEMENUGROUPWIDTHS;
|
||
|
||
typedef RECT BORDERWIDTHS;
|
||
typedef LPRECT LPBORDERWIDTHS;
|
||
typedef LPCRECT LPCBORDERWIDTHS;
|
||
|
||
/* Inplace editing specific error codes */
|
||
|
||
#define INPLACE_E_NOTUNDOABLE (INPLACE_E_FIRST)
|
||
// undo is not avaiable
|
||
|
||
#define INPLACE_E_NOTOOLSPACE (INPLACE_E_FIRST+1)
|
||
// Space for tools is not available
|
||
|
||
#define INPLACE_S_TRUNCATED (INPLACE_S_FIRST)
|
||
// Message is too long, some of it had to be truncated before displaying
|
||
|
||
//misc definitions
|
||
#define INPLACE_DEFBORDERWIDTH 4
|
||
|
||
// forward type declarations
|
||
#if defined(__cplusplus)
|
||
interface IOleInPlaceUIWindow;
|
||
#else
|
||
typedef interface IOleInPlaceUIWindow IOleInPlaceUIWindow;
|
||
#endif
|
||
|
||
typedef IOleInPlaceUIWindow FAR* LPOLEINPLACEUIWINDOW;
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IOleWindow
|
||
|
||
DECLARE_INTERFACE_(IOleWindow, IUnknown)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IOleWindow methods ***
|
||
STDMETHOD(GetWindow) (THIS_ HWND FAR* lphwnd) PURE;
|
||
STDMETHOD(ContextSensitiveHelp) (THIS_ BOOL fEnterMode) PURE;
|
||
};
|
||
|
||
typedef IOleWindow FAR* LPOLEWINDOW;
|
||
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IOleInPlaceObject
|
||
|
||
DECLARE_INTERFACE_(IOleInPlaceObject, IOleWindow)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IOleWindow methods ***
|
||
STDMETHOD(GetWindow) (THIS_ HWND FAR* lphwnd) PURE;
|
||
STDMETHOD(ContextSensitiveHelp) (THIS_ BOOL fEnterMode) PURE;
|
||
|
||
// *** IOleInPlaceObject methods ***
|
||
STDMETHOD(InPlaceDeactivate) (THIS) PURE;
|
||
STDMETHOD(UIDeactivate) (THIS) PURE;
|
||
STDMETHOD(SetObjectRects) (THIS_ LPCRECT lprcPosRect,
|
||
LPCRECT lprcClipRect) PURE;
|
||
STDMETHOD(ReactivateAndUndo) (THIS) PURE;
|
||
};
|
||
typedef IOleInPlaceObject FAR* LPOLEINPLACEOBJECT;
|
||
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IOleInPlaceActiveObject
|
||
|
||
DECLARE_INTERFACE_(IOleInPlaceActiveObject, IOleWindow)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IOleWindow methods ***
|
||
STDMETHOD(GetWindow) (THIS_ HWND FAR* lphwnd) PURE;
|
||
STDMETHOD(ContextSensitiveHelp) (THIS_ BOOL fEnterMode) PURE;
|
||
|
||
// *** IOleInPlaceActiveObject methods ***
|
||
STDMETHOD(TranslateAccelerator) (THIS_ LPMSG lpmsg) PURE;
|
||
STDMETHOD(OnFrameWindowActivate) (THIS_ BOOL fActivate) PURE;
|
||
STDMETHOD(OnDocWindowActivate) (THIS_ BOOL fActivate) PURE;
|
||
STDMETHOD(ResizeBorder) (THIS_ LPCRECT lprectBorder, LPOLEINPLACEUIWINDOW lpUIWindow, BOOL fFrameWindow) PURE;
|
||
STDMETHOD(EnableModeless) (THIS_ BOOL fEnable) PURE;
|
||
};
|
||
typedef IOleInPlaceActiveObject FAR* LPOLEINPLACEACTIVEOBJECT;
|
||
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IOleInPlaceUIWindow
|
||
|
||
DECLARE_INTERFACE_(IOleInPlaceUIWindow, IOleWindow)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IOleWindow methods ***
|
||
STDMETHOD(GetWindow) (THIS_ HWND FAR* lphwnd) PURE;
|
||
STDMETHOD(ContextSensitiveHelp) (THIS_ BOOL fEnterMode) PURE;
|
||
|
||
// *** IOleInPlaceUIWindow methods ***
|
||
STDMETHOD(GetBorder) (THIS_ LPRECT lprectBorder) PURE;
|
||
STDMETHOD(RequestBorderSpace) (THIS_ LPCBORDERWIDTHS lpborderwidths) PURE;
|
||
STDMETHOD(SetBorderSpace) (THIS_ LPCBORDERWIDTHS lpborderwidths) PURE;
|
||
STDMETHOD(SetActiveObject) (THIS_ LPOLEINPLACEACTIVEOBJECT lpActiveObject,
|
||
LPCXSTR lpszObjName) PURE;
|
||
};
|
||
typedef IOleInPlaceUIWindow FAR* LPOLEINPLACEUIWINDOW;
|
||
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IOleInPlaceFrame
|
||
|
||
DECLARE_INTERFACE_(IOleInPlaceFrame, IOleInPlaceUIWindow)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IOleWindow methods ***
|
||
STDMETHOD(GetWindow) (THIS_ HWND FAR* lphwnd) PURE;
|
||
STDMETHOD(ContextSensitiveHelp) (THIS_ BOOL fEnterMode) PURE;
|
||
|
||
// *** IOleInPlaceUIWindow methods ***
|
||
STDMETHOD(GetBorder) (THIS_ LPRECT lprectBorder) PURE;
|
||
STDMETHOD(RequestBorderSpace) (THIS_ LPCBORDERWIDTHS lpborderwidths) PURE;
|
||
STDMETHOD(SetBorderSpace) (THIS_ LPCBORDERWIDTHS lpborderwidths) PURE;
|
||
STDMETHOD(SetActiveObject) (THIS_ LPOLEINPLACEACTIVEOBJECT lpActiveObject,
|
||
LPCXSTR lpszObjName) PURE;
|
||
|
||
|
||
// *** IOleInPlaceFrame methods ***
|
||
STDMETHOD(InsertMenus) (THIS_ HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths) PURE;
|
||
STDMETHOD(SetMenu) (THIS_ HMENU hmenuShared, HOLEMENU holemenu, HWND hwndActiveObject) PURE;
|
||
STDMETHOD(RemoveMenus) (THIS_ HMENU hmenuShared) PURE;
|
||
STDMETHOD(SetStatusText) (THIS_ LPCXSTR lpszStatusText) PURE;
|
||
STDMETHOD(EnableModeless) (THIS_ BOOL fEnable) PURE;
|
||
STDMETHOD(TranslateAccelerator) (THIS_ LPMSG lpmsg, WORD wID) PURE;
|
||
};
|
||
typedef IOleInPlaceFrame FAR* LPOLEINPLACEFRAME;
|
||
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IOleInPlaceSite
|
||
|
||
DECLARE_INTERFACE_(IOleInPlaceSite, IOleWindow)
|
||
{
|
||
// *** IUnknown methods ***
|
||
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
||
// *** IOleWindow methods ***
|
||
STDMETHOD(GetWindow) (THIS_ HWND FAR* lphwnd) PURE;
|
||
STDMETHOD(ContextSensitiveHelp) (THIS_ BOOL fEnterMode) PURE;
|
||
|
||
// *** IOleInPlaceSite methods ***
|
||
STDMETHOD(CanInPlaceActivate) (THIS) PURE;
|
||
STDMETHOD(OnInPlaceActivate) (THIS) PURE;
|
||
STDMETHOD(OnUIActivate) (THIS) PURE;
|
||
STDMETHOD(GetWindowContext) (THIS_ LPOLEINPLACEFRAME FAR* lplpFrame,
|
||
LPOLEINPLACEUIWINDOW FAR* lplpDoc,
|
||
LPRECT lprcPosRect,
|
||
LPRECT lprcClipRect,
|
||
LPOLEINPLACEFRAMEINFO lpFrameInfo) PURE;
|
||
STDMETHOD(Scroll) (THIS_ SIZE scrollExtent) PURE;
|
||
STDMETHOD(OnUIDeactivate) (THIS_ BOOL fUndoable) PURE;
|
||
STDMETHOD(OnInPlaceDeactivate) (THIS) PURE;
|
||
STDMETHOD(DiscardUndoState) (THIS) PURE;
|
||
STDMETHOD(DeactivateAndUndo) (THIS) PURE;
|
||
STDMETHOD(OnPosRectChange) (THIS_ LPCRECT lprcPosRect) PURE;
|
||
};
|
||
typedef IOleInPlaceSite FAR* LPOLEINPLACESITE;
|
||
|
||
|
||
|
||
/****** OLE API Prototypes ************************************************/
|
||
|
||
STDAPI_(DWORD) OleBuildVersion( VOID );
|
||
|
||
/* helper functions */
|
||
STDAPI ReadClassStg(LPSTORAGE pStg, CLSID FAR* pclsid);
|
||
STDAPI WriteClassStg(LPSTORAGE pStg, REFCLSID rclsid);
|
||
STDAPI ReadClassStm(LPSTREAM pStm, CLSID FAR* pclsid);
|
||
STDAPI WriteClassStm(LPSTREAM pStm, REFCLSID rclsid);
|
||
STDAPI WriteFmtUserTypeStg (LPSTORAGE pstg, CLIPFORMAT cf, LPXSTR lpszUserType);
|
||
STDAPI ReadFmtUserTypeStg (LPSTORAGE pstg, CLIPFORMAT FAR* pcf, LPXSTR FAR* lplpszUserType);
|
||
|
||
|
||
/* init/term */
|
||
|
||
STDAPI OleInitialize(LPMALLOC pMalloc);
|
||
STDAPI_(void) OleUninitialize(void);
|
||
|
||
|
||
/* APIs to query whether (Embedded/Linked) object can be created from
|
||
the data object */
|
||
|
||
STDAPI OleQueryLinkFromData(LPDATAOBJECT pSrcDataObject);
|
||
STDAPI OleQueryCreateFromData(LPDATAOBJECT pSrcDataObject);
|
||
|
||
|
||
/* Object creation APIs */
|
||
|
||
STDAPI OleCreate(REFCLSID rclsid, REFIID riid, DWORD renderopt,
|
||
LPFORMATETC pFormatEtc, LPOLECLIENTSITE pClientSite,
|
||
LPSTORAGE pStg, LPVOID FAR* ppvObj);
|
||
|
||
STDAPI OleCreateFromData(LPDATAOBJECT pSrcDataObj, REFIID riid,
|
||
DWORD renderopt, LPFORMATETC pFormatEtc,
|
||
LPOLECLIENTSITE pClientSite, LPSTORAGE pStg,
|
||
LPVOID FAR* ppvObj);
|
||
|
||
STDAPI OleCreateLinkFromData(LPDATAOBJECT pSrcDataObj, REFIID riid,
|
||
DWORD renderopt, LPFORMATETC pFormatEtc,
|
||
LPOLECLIENTSITE pClientSite, LPSTORAGE pStg,
|
||
LPVOID FAR* ppvObj);
|
||
|
||
STDAPI OleCreateStaticFromData(LPDATAOBJECT pSrcDataObj, REFIID iid,
|
||
DWORD renderopt, LPFORMATETC pFormatEtc,
|
||
LPOLECLIENTSITE pClientSite, LPSTORAGE pStg,
|
||
LPVOID FAR* ppvObj);
|
||
|
||
|
||
STDAPI OleCreateLink(LPMONIKER pmkLinkSrc, REFIID riid,
|
||
DWORD renderopt, LPFORMATETC lpFormatEtc,
|
||
LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID FAR* ppvObj);
|
||
|
||
STDAPI OleCreateLinkToFile(LPCXSTR lpszFileName, REFIID riid,
|
||
DWORD renderopt, LPFORMATETC lpFormatEtc,
|
||
LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID FAR* ppvObj);
|
||
|
||
STDAPI OleCreateFromFile(REFCLSID rclsid, LPCXSTR lpszFileName, REFIID riid,
|
||
DWORD renderopt, LPFORMATETC lpFormatEtc,
|
||
LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID FAR* ppvObj);
|
||
|
||
STDAPI OleLoad(LPSTORAGE pStg, REFIID riid, LPOLECLIENTSITE pClientSite,
|
||
LPVOID FAR* ppvObj);
|
||
|
||
STDAPI OleSave(LPPERSISTSTORAGE pPS, LPSTORAGE pStg, BOOL fSameAsLoad);
|
||
|
||
STDAPI OleLoadFromStream( LPSTREAM pStm, REFIID iidInterface, LPVOID FAR* ppvObj);
|
||
STDAPI OleSaveToStream( LPPERSISTSTREAM pPStm, LPSTREAM pStm );
|
||
|
||
|
||
STDAPI OleSetContainedObject(LPUNKNOWN pUnknown, BOOL fContained);
|
||
STDAPI OleNoteObjectVisible(LPUNKNOWN pUnknown, BOOL fVisible);
|
||
|
||
|
||
/* Drag/Drop APIs */
|
||
|
||
STDAPI RegisterDragDrop(HWND hwnd, LPDROPTARGET pDropTarget);
|
||
STDAPI RevokeDragDrop(HWND hwnd);
|
||
STDAPI DoDragDrop(LPDATAOBJECT pDataObj, LPDROPSOURCE pDropSource,
|
||
DWORD dwOKEffects, LPDWORD pdwEffect);
|
||
|
||
/* Clipboard APIs */
|
||
|
||
STDAPI OleSetClipboard(LPDATAOBJECT pDataObj);
|
||
STDAPI OleGetClipboard(LPDATAOBJECT FAR* ppDataObj);
|
||
STDAPI OleFlushClipboard(void);
|
||
STDAPI OleIsCurrentClipboard(LPDATAOBJECT pDataObj);
|
||
|
||
|
||
/* InPlace Editing APIs */
|
||
|
||
STDAPI_(HOLEMENU) OleCreateMenuDescriptor (HMENU hmenuCombined,
|
||
LPOLEMENUGROUPWIDTHS lpMenuWidths);
|
||
STDAPI OleSetMenuDescriptor (HOLEMENU holemenu, HWND hwndFrame,
|
||
HWND hwndActiveObject,
|
||
LPOLEINPLACEFRAME lpFrame,
|
||
LPOLEINPLACEACTIVEOBJECT lpActiveObj);
|
||
STDAPI OleDestroyMenuDescriptor (HOLEMENU holemenu);
|
||
|
||
STDAPI OleTranslateAccelerator (LPOLEINPLACEFRAME lpFrame,
|
||
LPOLEINPLACEFRAMEINFO lpFrameInfo, LPMSG lpmsg);
|
||
|
||
|
||
/* Helper APIs */
|
||
STDAPI_(HANDLE) OleDuplicateData (HANDLE hSrc, CLIPFORMAT cfFormat,
|
||
UINT uiFlags);
|
||
|
||
STDAPI OleDraw (LPUNKNOWN pUnknown, DWORD dwAspect, HDC hdcDraw,
|
||
LPCRECT lprcBounds);
|
||
|
||
STDAPI OleRun(LPUNKNOWN pUnknown);
|
||
STDAPI_(BOOL) OleIsRunning(LPOLEOBJECT pObject);
|
||
STDAPI OleLockRunning(LPUNKNOWN pUnknown, BOOL fLock, BOOL fLastUnlockCloses);
|
||
|
||
STDAPI_(void) ReleaseStgMedium(LPSTGMEDIUM);
|
||
STDAPI CreateOleAdviseHolder(LPOLEADVISEHOLDER FAR* ppOAHolder);
|
||
|
||
STDAPI OleCreateDefaultHandler(REFCLSID clsid, LPUNKNOWN pUnkOuter,
|
||
REFIID riid, LPVOID FAR* lplpObj);
|
||
|
||
STDAPI OleCreateEmbeddingHelper(REFCLSID clsid, LPUNKNOWN pUnkOuter,
|
||
DWORD flags, LPCLASSFACTORY pCF,
|
||
REFIID riid, LPVOID FAR* lplpObj);
|
||
|
||
STDAPI_(BOOL) IsAccelerator(HACCEL hAccel, int cAccelEntries, LPMSG lpMsg,
|
||
WORD FAR* lpwCmd);
|
||
|
||
|
||
/* Icon extraction Helper APIs */
|
||
|
||
STDAPI_(HGLOBAL) OleGetIconOfFile(LPXSTR lpszPath, BOOL fUseFileAsLabel);
|
||
|
||
STDAPI_(HGLOBAL) OleGetIconOfClass(REFCLSID rclsid, LPXSTR lpszLabel,
|
||
BOOL fUseTypeAsLabel);
|
||
|
||
STDAPI_(HGLOBAL) OleMetafilePictFromIconAndLabel(HICON hIcon, LPXSTR lpszLabel,
|
||
LPXSTR lpszSourceFile, UINT iIconIndex);
|
||
|
||
|
||
|
||
/* Registration Database Helper APIs */
|
||
|
||
STDAPI OleRegGetUserType (REFCLSID clsid, DWORD dwFormOfType,
|
||
LPXSTR FAR* pszUserType);
|
||
|
||
STDAPI OleRegGetMiscStatus (REFCLSID clsid, DWORD dwAspect,
|
||
DWORD FAR* pdwStatus);
|
||
|
||
STDAPI OleRegEnumFormatEtc (REFCLSID clsid, DWORD dwDirection,
|
||
LPENUMFORMATETC FAR* ppenum);
|
||
|
||
STDAPI OleRegEnumVerbs (REFCLSID clsid, LPENUMOLEVERB FAR* ppenum);
|
||
|
||
|
||
#ifndef WIN32 //Ole 1.0 conversion is not available in 32-bit OLE
|
||
|
||
/* OLE 1.0 conversion APIS */
|
||
|
||
STDAPI OleConvertIStorageToOLESTREAM
|
||
(LPSTORAGE pstg,
|
||
LPOLESTREAM polestm);
|
||
|
||
STDAPI OleConvertOLESTREAMToIStorage
|
||
(LPOLESTREAM polestm,
|
||
LPSTORAGE pstg,
|
||
const DVTARGETDEVICE FAR* ptd);
|
||
|
||
STDAPI OleConvertIStorageToOLESTREAMEx
|
||
(LPSTORAGE pstg,
|
||
// Presentation data to OLESTREAM
|
||
CLIPFORMAT cfFormat, // format
|
||
LONG lWidth, // width
|
||
LONG lHeight, // height
|
||
DWORD dwSize, // size in bytes
|
||
LPSTGMEDIUM pmedium, // bits
|
||
LPOLESTREAM polestm);
|
||
|
||
STDAPI OleConvertOLESTREAMToIStorageEx
|
||
(LPOLESTREAM polestm,
|
||
LPSTORAGE pstg,
|
||
// Presentation data from OLESTREAM
|
||
CLIPFORMAT FAR* pcfFormat, // format
|
||
LONG FAR* plwWidth, // width
|
||
LONG FAR* plHeight, // height
|
||
DWORD FAR* pdwSize, // size in bytes
|
||
LPSTGMEDIUM pmedium); // bits
|
||
|
||
#endif //WIN32
|
||
|
||
/* Storage Utility APIs */
|
||
STDAPI GetHGlobalFromILockBytes (LPLOCKBYTES plkbyt, HGLOBAL FAR* phglobal);
|
||
STDAPI CreateILockBytesOnHGlobal (HGLOBAL hGlobal, BOOL fDeleteOnRelease,
|
||
LPLOCKBYTES FAR* pplkbyt);
|
||
|
||
STDAPI GetHGlobalFromStream (LPSTREAM pstm, HGLOBAL FAR* phglobal);
|
||
STDAPI CreateStreamOnHGlobal (HGLOBAL hGlobal, BOOL fDeleteOnRelease,
|
||
LPSTREAM FAR* ppstm);
|
||
|
||
|
||
/* ConvertTo APIS */
|
||
|
||
STDAPI OleDoAutoConvert(LPSTORAGE pStg, LPCLSID pClsidNew);
|
||
STDAPI OleGetAutoConvert(REFCLSID clsidOld, LPCLSID pClsidNew);
|
||
STDAPI OleSetAutoConvert(REFCLSID clsidOld, REFCLSID clsidNew);
|
||
STDAPI GetConvertStg(LPSTORAGE pStg);
|
||
STDAPI SetConvertStg(LPSTORAGE pStg, BOOL fConvert);
|
||
|
||
|
||
#endif // _OLE2_H_
|
||
|