//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1995.
//
// File: srvhndlr.idl
//
//--------------------------------------------------------------------------
#ifndef DO_NO_IMPORTS
import "oleidl.idl";
import "unknwn.idl";
#endif
[
object,
uuid(F4F569D0-593B-101A-B569-08002B2DBF7A),
pointer_default(unique)
]
interface IServerHandler : IUnknown
{
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright (C) Microsoft Corporation, 1992 - 1995.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
typedef [unique] IServerHandler *LPSERVERHANDLER;
typedef struct tagInSrvRun
{
DWORD dwOperation;
// in parameter
// IUnknown *pUnk; // Unknown of object
IMoniker *pMnk; // Moniker
IOleContainer *pOCont; // container object
// optional clientsite of container
//IOleClientSite *pOContCS; // the client ole object
// Storage for IPersistStorage
IStorage *pStg;
// DoVerb stuff
LONG iVerb;
LPMSG lpmsg;
LONG lindex;
HWND hwndParent;
RECT *lprcPosRect;
// inplace stuff
DWORD dwInPlace; // inplace options
DWORD dwInFlags; // generic Flags
DWORD dwInOptions;
// SetHostName
LPOLESTR pszContainerApp;
LPOLESTR pszContainerObj;
// AdviseSink
IAdviseSink *pAS; // IAdviseSink
DWORD dwConnOle;
CLSID *pContClassID;
} INSRVRUN, *PINSRVRUN;
typedef struct tagOutSrvRunInit
{
DWORD dwOperation;
// out parameter
IOleObject *pOO; // IOleObject
IDataObject *pDO; // IDataObject
IPersistStorage *pPStg; // IPersistStorage
HRESULT hrSetHostNames;
HRESULT hrPStg;
HRESULT hrAdvise;
DWORD dwConnOle;
CLSID *pUserClassID; // the user class id
DWORD dwOutFlag;
DWORD dwOutOptions;
} OUTSRVRUN, *POUTSRVRUN;
typedef struct tagSrvRunDoVerb
{
IUnknown *pUnk;
} SRVRUNDOVERB, *PSRVRUNDOVERB;
typedef struct tagSrvDoVerb
{
IUnknown *pUnk;
} SRVDOVERB, *PSRVDOVERB;
HRESULT RunAndInitialize
(
[in] INSRVRUN *pInSrvRun,
[out] OUTSRVRUN **pOutSrvRun
);
HRESULT RunAndDoVerb
(
[in] INSRVRUN *pInSrvRun,
[out] OUTSRVRUN **pOutSrvRun
);
HRESULT DoVerb
(
[in] INSRVRUN *pInSrvRun,
[out] OUTSRVRUN **pOutSrvRun
);
HRESULT CloseAndRelease
(
[in] DWORD dwClose
);
}
[
object,
uuid(F4F569D1-593B-101A-B569-08002B2DBF7A),
pointer_default(unique)
]
//interface IClientSiteHandler : IOleClientSite
interface IClientSiteHandler : IUnknown
{
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright (C) Microsoft Corporation, 1992 - 1995.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
typedef [unique] IClientSiteHandler *LPCLIENTSITEHANDLER;
typedef struct tagInSrvInPlace
{
DWORD dwOperation;
DWORD dwDelegateID;
DWORD dwInFlags; // generic Flags
DWORD dwInOptions;
// IOleObject::GetExtend
DWORD dwDrawAspect;
SIZEL sizel;
//
IOleInPlaceObject *pOIPObj;
} INSRVINPLACE, *PINSRVINPLACE;
typedef struct tagOutSrvInPlace
{
DWORD dwOperation;
DWORD dwOutFlags; // generic Flags
DWORD dwOutOptions;
HWND hwnd;
IOleInPlaceFrame *pOIPFrame;
IOleInPlaceUIWindow *pOIPUIWnd;
LPRECT lprcPosRect;
LPRECT lprcClipRect;
LPOLEINPLACEFRAMEINFO lpFrameInfo;
RECT rcPosRect;
RECT rcClipRect;
OLEINPLACEFRAMEINFO FrameInfo;
// menu stuff
HMENU hmenuShared;
OLEMENUGROUPWIDTHS MenuWidths;
//
LPOLESTR pszStatusText;
// IOleObject::SetExtend
DWORD dwDrawAspect;
SIZEL sizel;
} OUTSRVINPLACE, *POUTSRVINPLACE;
[local]
HRESULT __stdcall PrivQueryInterface(
[in] DWORD dwId,
[in] REFIID riidResult,
[out, iid_is(riidResult)] void **ppvResult);
[call_as(PrivQueryInterface)]
HRESULT __stdcall RemotePrivQueryInterface(
[in] DWORD dwId,
[in] REFIID riidResult,
[out, iid_is(riidResult)] IUnknown **ppvResult);
HRESULT PrivAddRef(
[in] DWORD dwId
);
HRESULT PrivRelease(
[in] DWORD dwId
);
// IOleClientSite methods
HRESULT SaveObject
(
[in] DWORD dwId
);
HRESULT GetMoniker
(
[in] DWORD dwId,
[in] DWORD dwAssign,
[in] DWORD dwWhichMoniker,
[out] IMoniker **ppmk
);
HRESULT GetContainer
(
[in] DWORD dwId,
[out] IOleContainer **ppContainer
);
HRESULT ShowObject
(
[in] DWORD dwId
);
HRESULT OnShowWindow
(
[in] DWORD dwId,
[in] BOOL fShow
);
HRESULT RequestNewObjectLayout
(
[in] DWORD dwId
);
// IOleInPlaceSite methods
[input_sync]
HRESULT GetWindow
(
[out] HWND *phwnd
);
HRESULT ContextSensitiveHelp
(
[in] BOOL fEnterMode
);
HRESULT CanInPlaceActivate
(
void
);
HRESULT OnInPlaceActivate
(
void
);
HRESULT OnUIActivate
(
void
);
HRESULT GetWindowContext
(
[out] IOleInPlaceFrame **ppFrame,
[out] IOleInPlaceUIWindow **ppDoc,
[out] LPRECT lprcPosRect,
[out] LPRECT lprcClipRect,
[in, out] LPOLEINPLACEFRAMEINFO lpFrameInfo
);
HRESULT Scroll
(
[in] SIZE scrollExtant
);
HRESULT OnUIDeactivate
(
[in] BOOL fUndoable
);
HRESULT OnInPlaceDeactivate
(
void
);
HRESULT DiscardUndoState
(
void
);
HRESULT DeactivateAndUndo
(
void
);
HRESULT OnPosRectChange
(
[in] LPCRECT lprcPosRect
);
HRESULT GoInPlaceActivate
(
[in] INSRVINPLACE *pInSrvInPlace,
[out] OUTSRVINPLACE **pOutSrvInPlace
);
HRESULT GoInPlace
(
[in] INSRVINPLACE *pInSrvInPlace,
[out] OUTSRVINPLACE **pOutSrvInPlace
);
HRESULT UndoPlace
(
[in] INSRVINPLACE *pInSrvInPlace,
[out] OUTSRVINPLACE **pOutSrvInPlace
);
}