741 lines
27 KiB
C
741 lines
27 KiB
C
|
//=------------------------------------------------------------------------=
|
||
|
// ObjExt.h
|
||
|
//=------------------------------------------------------------------------=
|
||
|
// Copyright 1995-1997 Microsoft Corporation. All Rights Reserved.
|
||
|
//
|
||
|
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||
|
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||
|
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||
|
// PARTICULAR PURPOSE.
|
||
|
//=--------------------------------------------------------------------------=
|
||
|
//
|
||
|
// header file for Object Extensions interfaces
|
||
|
//
|
||
|
|
||
|
#ifndef _OBJEXT_H
|
||
|
#define _OBJEXT_H
|
||
|
|
||
|
#ifndef BEGIN_INTERFACE
|
||
|
#define BEGIN_INTERFACE
|
||
|
#endif
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// forward declares
|
||
|
//
|
||
|
///////////////////////////////////////////////////////////////////////////
|
||
|
#ifdef __cplusplus
|
||
|
interface IFilterMembers;
|
||
|
#else // __cplusplus
|
||
|
typedef interface IFilterMembers IFilterMembers;
|
||
|
#endif // __cplusplus
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Object Extension Interfaces
|
||
|
//
|
||
|
///////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// IServiceProvider Interface
|
||
|
// This interface is implemented by an object that wish to provide "services"
|
||
|
//
|
||
|
//-------------------------------------------------------------------------
|
||
|
#ifndef __IServiceProvider_INTERFACE_DEFINED
|
||
|
#define __IServiceProvider_INTERFACE_DEFINED
|
||
|
|
||
|
// { 6d5140c1-7436-11ce-8034-00aa006009fa }
|
||
|
DEFINE_GUID(IID_IServiceProvider, 0x6d5140c1, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE IServiceProvider
|
||
|
DECLARE_INTERFACE_(IServiceProvider, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** IServiceProvider methods ***
|
||
|
STDMETHOD(QueryService)(THIS_
|
||
|
/* [in] */ REFGUID rsid,
|
||
|
/* [in] */ REFIID iid,
|
||
|
/* [out] */ void ** ppvObj) PURE;
|
||
|
};
|
||
|
|
||
|
#endif // __IServiceProvider_INTERFACE_DEFINED
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// IClassDesigner Interface
|
||
|
// This interface is implemented by a class object that can be customized
|
||
|
//
|
||
|
//-------------------------------------------------------------------------
|
||
|
|
||
|
// { 6d5140d3-7436-11ce-8034-00aa006009fa }
|
||
|
DEFINE_GUID(IID_IClassDesigner, 0x6d5140d3, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
|
||
|
typedef DWORD ACTFLAG;
|
||
|
#define ACT_DEFAULT 0x00000000
|
||
|
#define ACT_SHOW 0x00000001
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE IClassDesigner
|
||
|
DECLARE_INTERFACE_(IClassDesigner, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** IClassDesigner methods ***
|
||
|
STDMETHOD(SetSite)(THIS_
|
||
|
/* [in] */ IServiceProvider * pSP) PURE;
|
||
|
STDMETHOD(GetSite)(THIS_
|
||
|
/* [out] */ IServiceProvider** ppSP) PURE;
|
||
|
STDMETHOD(GetCompiler)(THIS_
|
||
|
/* [in] */ REFIID iid,
|
||
|
/* [out] */ void **ppvObj) PURE;
|
||
|
STDMETHOD(ActivateObject)(THIS_ DWORD dwFlags) PURE;
|
||
|
STDMETHOD(IsObjectShowable)(THIS) PURE;
|
||
|
STDMETHOD(GetExtensibilityObject)(THIS_
|
||
|
/* [out] */ IDispatch ** ppDisp) PURE;
|
||
|
};
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// IProvideUnmergedClassInfo Interface
|
||
|
// This interface is implemented by an object that is composed of two
|
||
|
// objects. This interface is used to get the typeinfo of the two objects.
|
||
|
//
|
||
|
//-------------------------------------------------------------------------
|
||
|
// { 6d5140da-7436-11ce-8034-00aa006009fa }
|
||
|
DEFINE_GUID(IID_IProvideUnmergedClassInfo, 0x6d5140da, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE IProvideUnmergedClassInfo
|
||
|
DECLARE_INTERFACE_(IProvideUnmergedClassInfo, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** IProvideUnmergedClassInfo methods ***
|
||
|
STDMETHOD(GetClassInfos)(THIS_
|
||
|
/* [out] */ ITypeInfo **pptinfoBase,
|
||
|
/* [out] */ ITypeInfo **pptinfoExtender,
|
||
|
/* [out] */ DWORD *pdwCookie) PURE;
|
||
|
};
|
||
|
|
||
|
//UNDONE UNDONE: rip this
|
||
|
// { 6d5140dd-7436-11ce-8034-00aa006009fa }
|
||
|
DEFINE_GUID(IID_IProvideUnmergedClassInfoOLD, 0x6d5140dd, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE IProvideUnmergedClassInfoOLD
|
||
|
DECLARE_INTERFACE_(IProvideUnmergedClassInfoOLD, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** IProvideUnmergedClassInfo methods ***
|
||
|
STDMETHOD(GetClassInfos)(THIS_
|
||
|
/* [out] */ ITypeInfo **pptinfoBase,
|
||
|
/* [out] */ ITypeInfo **pptinfoExtender) PURE;
|
||
|
};
|
||
|
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// IUnmergedClassFactory Interface
|
||
|
// This interface is implemented by an object that is composed of two
|
||
|
// objects. This interface is used to create instances of the two objects.
|
||
|
//
|
||
|
//-------------------------------------------------------------------------
|
||
|
// { 6d5140d5-7436-11ce-8034-00aa006009fa }
|
||
|
DEFINE_GUID(IID_IUnmergedClassFactory, 0x6d5140d5, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE IUnmergedClassFactory
|
||
|
DECLARE_INTERFACE_(IUnmergedClassFactory, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** IUnmergedClassFactory methods ***
|
||
|
STDMETHOD(CreateInstance)(THIS_
|
||
|
/* [in] */ IUnknown *punkOuter,
|
||
|
/* [out] */ IUnknown **ppunkBase,
|
||
|
/* [out] */ IUnknown **ppunkExtender) PURE;
|
||
|
};
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Standard Services and Interfaces
|
||
|
//
|
||
|
///////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// SLicensedClassManager
|
||
|
// VBA provides this service to it's components and hosts to optimize
|
||
|
// registry access and to insulate them from licensing concerns
|
||
|
//
|
||
|
// interfaces implemented:
|
||
|
// ILicensedClassManager
|
||
|
//-------------------------------------------------------------------------
|
||
|
// { 6d5140d0-7436-11ce-8034-00aa006009fa }
|
||
|
DEFINE_GUID(IID_IRequireClasses, 0x6d5140d0, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE IRequireClasses
|
||
|
DECLARE_INTERFACE_(IRequireClasses, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** IRequireClasses methods ***
|
||
|
STDMETHOD(CountRequiredClasses)(THIS_
|
||
|
/* [out] */ ULONG * pcClasses ) PURE;
|
||
|
STDMETHOD(GetRequiredClasses)(THIS_
|
||
|
/* [in] */ ULONG index,
|
||
|
/* [out] */ CLSID * pclsid ) PURE;
|
||
|
};
|
||
|
|
||
|
// { 6d5140d4-7436-11ce-8034-00aa006009fa }
|
||
|
DEFINE_GUID(IID_ILicensedClassManager, 0x6d5140d4, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
#define SID_SLicensedClassManager IID_ILicensedClassManager
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE ILicensedClassManager
|
||
|
DECLARE_INTERFACE_(ILicensedClassManager, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** ILicensedClassManager methods ***
|
||
|
STDMETHOD(OnChangeInRequiredClasses)(THIS_
|
||
|
/* [in] */ IRequireClasses *pRequireClasses) PURE;
|
||
|
};
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// IFilterMembers
|
||
|
// This interface is used during processing of typeinfos
|
||
|
//-------------------------------------------------------------------------
|
||
|
// MX ON
|
||
|
#if 0
|
||
|
// MX OFF
|
||
|
// {49F21D20-1870-11cf-80E8-00AA004BA1C8}
|
||
|
DEFINE_GUID(IID_IFilterMembers,0x49f21d20L, 0x1870, 0x11cf, 0x80, 0xe8, 0x00, 0xaa, 0x00, 0x4b, 0xa1, 0xc8);
|
||
|
|
||
|
// used in IFilterMembers indicating the passed in ptinfo is a source or not
|
||
|
#define FILTERMEMBERS_FSOURCE 0x0001
|
||
|
|
||
|
// used in IFilterMembers indicating the passed in ptinfo is an extender or not
|
||
|
#define FILTERMEMBERS_FEXTENDER 0x0002
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE IFilterMembers
|
||
|
DECLARE_INTERFACE(IFilterMembers)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// IUnknown methods
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void FAR* FAR* ppv) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// IVbaProvideStorage methods
|
||
|
STDMETHOD(FilterVarDesc)(THIS_ DWORD dwFlags,
|
||
|
ITypeInfo *ptinfo,
|
||
|
UINT index,
|
||
|
VARDESC *pvardesc,
|
||
|
DWORD dwReserved) PURE;
|
||
|
STDMETHOD(FilterFuncDesc)(THIS_ DWORD dwFlags,
|
||
|
ITypeInfo *ptinfo,
|
||
|
UINT index,
|
||
|
FUNCDESC *pfuncdesc,
|
||
|
DWORD dwReserved) PURE;
|
||
|
STDMETHOD(BeginMerge)(THIS_ DWORD dwFlags,
|
||
|
ITypeInfo *ptinfo) PURE;
|
||
|
STDMETHOD(EndMerge)(THIS) PURE;
|
||
|
STDMETHOD(UpdateMergedCoClass)(THIS_ ICreateTypeInfo *pictinfo) PURE;
|
||
|
};
|
||
|
// MX ON
|
||
|
#endif
|
||
|
// MX OFF
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// SCreateExtendedTypeLib Service
|
||
|
// This service is used by components to create a typelib
|
||
|
// describing controls merged with their extender
|
||
|
//
|
||
|
// interfaces implemented:
|
||
|
// ICreateExtendedTypeLib
|
||
|
//-------------------------------------------------------------------------
|
||
|
// { 6d5140d6-7436-11ce-8034-00aa006009fa }
|
||
|
DEFINE_GUID(IID_IExtendedTypeLib, 0x6d5140d6, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
#define SID_SExtendedTypeLib IID_IExtendedTypeLib
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE IExtendedTypeLib
|
||
|
DECLARE_INTERFACE_(IExtendedTypeLib, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** IExtendedTypeLib ***
|
||
|
STDMETHOD(CreateExtendedTypeLib)(THIS_
|
||
|
/* [in] */ LPCOLESTR lpstrCtrlLibFileName,
|
||
|
/* [in] */ LPCOLESTR lpstrLibNamePrepend,
|
||
|
/* [in] */ ITypeInfo *ptinfoExtender,
|
||
|
/* [in] */ IFilterMembers *pfilter,
|
||
|
/* [in] */ DWORD dwFlags,
|
||
|
/* [in] */ LPCOLESTR lpstrDirectoryName,
|
||
|
/* [out] */ ITypeLib **pptlib) PURE;
|
||
|
|
||
|
STDMETHOD(AddRefExtendedTypeLib)(THIS_
|
||
|
/* [in] */ LPCOLESTR lpstrCtrlLibFileName,
|
||
|
/* [in] */ LPCOLESTR lpstrLibNamePrepend,
|
||
|
/* [in] */ ITypeInfo *ptinfoExtender,
|
||
|
/* [in] */ IFilterMembers *pfilter,
|
||
|
/* [in] */ DWORD dwFlags,
|
||
|
/* [in] */ LPCOLESTR lpstrDirectoryName,
|
||
|
/* [out] */ ITypeLib **pptlib) PURE;
|
||
|
STDMETHOD(AddRefExtendedTypeLibOfClsid)(THIS_
|
||
|
/* [in] */ REFCLSID rclsidControl,
|
||
|
/* [in] */ LPCOLESTR lpstrLibNamePrepend,
|
||
|
/* [in] */ ITypeInfo *ptinfoExtender,
|
||
|
/* [in] */ IFilterMembers *pfilter,
|
||
|
/* [in] */ DWORD dwFlags,
|
||
|
/* [in] */ LPCOLESTR lpstrDirectoryName,
|
||
|
/* [out] */ ITypeInfo **pptinfo) PURE;
|
||
|
STDMETHOD(SetExtenderInfo)(THIS_
|
||
|
/* [in] */ LPCOLESTR lpstrDirectoryName,
|
||
|
/* [in] */ ITypeInfo *ptinfoExtender,
|
||
|
/* [in] */ IFilterMembers *pfilter) PURE;
|
||
|
};
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// SCreateExtension Service
|
||
|
// This service is used by Instance customized objects to
|
||
|
// create the VBA extension
|
||
|
//
|
||
|
// interfaces implemented:
|
||
|
// ICreateExtension
|
||
|
//-------------------------------------------------------------------------
|
||
|
|
||
|
// { 6d5140d2-7436-11ce-8034-00aa006009fa }
|
||
|
DEFINE_GUID(IID_ICreateExtension, 0x6d5140d2, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
#define SID_SCreateExtension IID_ICreateExtension
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE ICreateExtension
|
||
|
DECLARE_INTERFACE_(ICreateExtension, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** ICreateExtension methods ***
|
||
|
STDMETHOD(CreateExtension)(THIS_
|
||
|
/* [in] */ IUnknown *punkOuter,
|
||
|
/* [in] */ IUnknown *punkBase,
|
||
|
/* [in] */ IUnknown *punkExtender,
|
||
|
/* [out] */ IUnknown **ppunkExtension) PURE;
|
||
|
};
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// SCodeNavigate Service.
|
||
|
// This service let's an extended object show the code module
|
||
|
// behind it.
|
||
|
//
|
||
|
// interfaces implemented:
|
||
|
// ICodeNavigate
|
||
|
//-------------------------------------------------------------------------
|
||
|
|
||
|
// { 6d5140c4-7436-11ce-8034-00aa006009fa }
|
||
|
DEFINE_GUID(IID_ICodeNavigate, 0x6d5140c4, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
#define SID_SCodeNavigate IID_ICodeNavigate
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE ICodeNavigate
|
||
|
DECLARE_INTERFACE_(ICodeNavigate, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** ICodeNavigate methods ***
|
||
|
STDMETHOD(DisplayDefaultEventHandler)(THIS_ /* [in] */ LPCOLESTR lpstrObjectName) PURE;
|
||
|
};
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// STrackSelection Service
|
||
|
// This service is used by the VBA host to help VBA track the
|
||
|
// currently selected object in the host
|
||
|
//
|
||
|
// interfaces implemented:
|
||
|
// ITrackSelection
|
||
|
//-------------------------------------------------------------------------
|
||
|
#define GETOBJS_ALL 1
|
||
|
#define GETOBJS_SELECTED 2
|
||
|
|
||
|
#define SELOBJS_ACTIVATE_WINDOW 1
|
||
|
|
||
|
// { 6d5140c6-7436-11ce-8034-00aa006009fa }
|
||
|
DEFINE_GUID(IID_ISelectionContainer, 0x6d5140c6, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE ISelectionContainer
|
||
|
DECLARE_INTERFACE_(ISelectionContainer, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** ISelectionContainer methods ***
|
||
|
STDMETHOD(CountObjects)(THIS_
|
||
|
/* [in] */ DWORD dwFlags,
|
||
|
/* [out] */ ULONG * pc) PURE;
|
||
|
STDMETHOD(GetObjects)(THIS_
|
||
|
/* [in] */ DWORD dwFlags,
|
||
|
/* [in] */ ULONG cObjects,
|
||
|
/* [out] */ IUnknown **apUnkObjects) PURE;
|
||
|
STDMETHOD(SelectObjects)(THIS_
|
||
|
/* [in] */ ULONG cSelect,
|
||
|
/* [in] */ IUnknown **apUnkSelect,
|
||
|
/* [in] */ DWORD dwFlags) PURE;
|
||
|
};
|
||
|
|
||
|
// { 6d5140c5-7436-11ce-8034-00aa006009fa }
|
||
|
DEFINE_GUID(IID_ITrackSelection, 0x6d5140c5, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
#define SID_STrackSelection IID_ITrackSelection
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE ITrackSelection
|
||
|
DECLARE_INTERFACE_(ITrackSelection, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** ITrackSelection methods ***
|
||
|
STDMETHOD(OnSelectChange)(THIS_
|
||
|
/* [in] */ ISelectionContainer * pSC) PURE;
|
||
|
};
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// SLocalRegistry Service
|
||
|
// VBA provides this service to it's components and hosts to optimize
|
||
|
// registry access and to insulate them from licensing concerns
|
||
|
//
|
||
|
// interfaces implemented:
|
||
|
// ILocalRegistry
|
||
|
//-------------------------------------------------------------------------
|
||
|
|
||
|
// { 6d5140d3-7436-11ce-8034-00aa006009fa }
|
||
|
DEFINE_GUID(IID_ILocalRegistry, 0x6d5140d3, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
#define SID_SLocalRegistry IID_ILocalRegistry
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE ILocalRegistry
|
||
|
DECLARE_INTERFACE_(ILocalRegistry, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** ILocalRegistry methods ***
|
||
|
STDMETHOD(CreateInstance)(THIS_
|
||
|
/* [in] */ CLSID clsid,
|
||
|
/* [in] */ IUnknown * punkOuter,
|
||
|
/* [in] */ REFIID riid,
|
||
|
/* [in] */ DWORD dwFlags,
|
||
|
/* [out] */ void ** ppvObj ) PURE;
|
||
|
STDMETHOD(GetTypeLibOfClsid)(THIS_
|
||
|
/* [in] */ CLSID clsid,
|
||
|
/* [out] */ ITypeLib ** ptlib ) PURE;
|
||
|
STDMETHOD(GetClassObjectOfClsid)(THIS_
|
||
|
/* [in] */ REFCLSID clsid,
|
||
|
/* [in] */ DWORD dwClsCtx,
|
||
|
/* [in] */ LPVOID lpReserved,
|
||
|
/* [in] */ REFIID riid,
|
||
|
/* [out] */ void ** ppcClassObject ) PURE;
|
||
|
};
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// IUIElement interface
|
||
|
// components can implement services to allow external control of pieces
|
||
|
// of their UI by implementing this interface
|
||
|
//
|
||
|
//-------------------------------------------------------------------------
|
||
|
// { 759d0500-d979-11ce-84ec-00aa00614f3e }
|
||
|
DEFINE_GUID(IID_IUIElement, 0x759d0500, 0xd979, 0x11ce, 0x84, 0xec, 0x00, 0xaa, 0x00, 0x61, 0x4f, 0x3e);
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE IUIElement
|
||
|
DECLARE_INTERFACE_(IUIElement, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ****
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** IUIElement methods ****
|
||
|
STDMETHOD(Show)(THIS) PURE;
|
||
|
STDMETHOD(Hide)(THIS) PURE;
|
||
|
STDMETHOD(IsVisible)(THIS) PURE;
|
||
|
};
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// SProfferService Service
|
||
|
// VBA provides this service to it's components and hosts to allow
|
||
|
// them to dynamically provide services.
|
||
|
//
|
||
|
// interfaces implemented:
|
||
|
// IProfferService
|
||
|
//-------------------------------------------------------------------------
|
||
|
|
||
|
// {CB728B20-F786-11ce-92AD-00AA00A74CD0}
|
||
|
DEFINE_GUID(IID_IProfferService, 0xcb728b20, 0xf786, 0x11ce, 0x92, 0xad, 0x0, 0xaa, 0x0, 0xa7, 0x4c, 0xd0);
|
||
|
#define SID_SProfferService IID_IProfferService
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE IProfferService
|
||
|
DECLARE_INTERFACE_(IProfferService, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** IProfferService methods ***
|
||
|
STDMETHOD(ProfferService)(THIS_
|
||
|
/* [in] */ REFGUID rguidService,
|
||
|
/* [in] */ IServiceProvider * psp,
|
||
|
/* [out] */ DWORD *pdwCookie) PURE;
|
||
|
|
||
|
STDMETHOD(RevokeService)(THIS_ /* [in] */ DWORD dwCookie) PURE;
|
||
|
};
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// SProfferTypelib Service
|
||
|
// VBA provides this service to it's components and hosts to allow
|
||
|
// them to add typelibs to the project
|
||
|
//
|
||
|
// interfaces implemented:
|
||
|
// IProfferTypelib
|
||
|
//-------------------------------------------------------------------------
|
||
|
|
||
|
// { 718cc500-0a76-11cf-8045-00aa006009fa }
|
||
|
DEFINE_GUID(IID_IProfferTypeLib, 0x718cc500, 0x0A76, 0x11cf, 0x80, 0x45, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
#define SID_SProfferTypeLib IID_IProfferTypeLib
|
||
|
|
||
|
#define CONTROLTYPELIB (0x00000001)
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE IProfferTypeLib
|
||
|
DECLARE_INTERFACE_(IProfferTypeLib, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** IProfferTypelib methods ***
|
||
|
STDMETHOD(ProfferTypeLib)(THIS_
|
||
|
/* [in] */ REFGUID guidTypeLib,
|
||
|
/* [in] */ UINT uVerMaj,
|
||
|
/* [in] */ UINT uVerMin,
|
||
|
/* [in] */ DWORD dwFlags) PURE;
|
||
|
};
|
||
|
|
||
|
// UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE
|
||
|
// These interfaces need to be moved to the new olectl.h
|
||
|
//
|
||
|
// UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE UNDONE
|
||
|
|
||
|
// { 6d5140c0-7436-11ce-8034-00aa006009fa }
|
||
|
DEFINE_GUID(IID_IGangConnectWithDefault, 0x6d5140c0, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE IGangConnectWithDefault
|
||
|
DECLARE_INTERFACE_(IGangConnectWithDefault, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** IGangConnectWithDefault ***
|
||
|
STDMETHOD(AdviseWithDefault)(THIS_
|
||
|
ULONG cSinks,
|
||
|
DISPID * adispid,
|
||
|
IUnknown ** apUnkSink,
|
||
|
IUnknown ** apUnkDefaultBO) PURE;
|
||
|
};
|
||
|
|
||
|
// { 6d5140d1-7436-11ce-8034-00aa006009fa }
|
||
|
DEFINE_GUID(IID_IProvideDynamicClassInfo, 0x6d5140d1, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE IProvideDynamicClassInfo
|
||
|
DECLARE_INTERFACE_(IProvideDynamicClassInfo, IProvideClassInfo)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** IProvideDynamicClassInfo ***
|
||
|
STDMETHOD(GetDynamicClassInfo_RIP)(THIS_ ITypeInfo ** ppTI) PURE;
|
||
|
STDMETHOD(GetDynamicClassInfo)(THIS_ ITypeInfo ** ppTI, DWORD * pdwCookie) PURE;
|
||
|
STDMETHOD(FreezeShape)(void) PURE;
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
// {4D07FC10-F931-11ce-B001-00AA006884E5}
|
||
|
DEFINE_GUID(IID_ICategorizeProperties, 0x4d07fc10, 0xf931, 0x11ce, 0xb0, 0x1, 0x0, 0xaa, 0x0, 0x68, 0x84, 0xe5);
|
||
|
|
||
|
// NOTE : CATID should no longer be used. Use PROPCAT instead.
|
||
|
// UNDONE,erikc,1/22/96 : remove #ifdef when all components have updated to new typedef.
|
||
|
#ifdef OBJEXT_OLD_CATID
|
||
|
typedef int CATID;
|
||
|
#else
|
||
|
typedef int PROPCAT;
|
||
|
#endif
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE ICategorizeProperties
|
||
|
DECLARE_INTERFACE_(ICategorizeProperties, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** ICategorizeProperties ***
|
||
|
STDMETHOD(MapPropertyToCategory)(THIS_
|
||
|
/* [in] */ DISPID dispid,
|
||
|
/* [out] */ PROPCAT* ppropcat) PURE;
|
||
|
STDMETHOD(GetCategoryName)(THIS_
|
||
|
/* [in] */ PROPCAT propcat,
|
||
|
/* [in] */ LCID lcid,
|
||
|
/* [out] */ BSTR* pbstrName) PURE;
|
||
|
};
|
||
|
|
||
|
typedef ICategorizeProperties FAR* LPCATEGORIZEPROPERTIES;
|
||
|
|
||
|
// category ID: negative values are 'standard' categories, positive are control-specific
|
||
|
// Note! This is a temporary list!
|
||
|
#ifdef OBJEXT_OLD_CATID
|
||
|
// NOTE : The following #defines should no longer be used. Use PROPCAT_ instead.
|
||
|
// UNDONE,erikc,1/22/96 : remove #ifdef when all components have updated to new #defines.
|
||
|
#define CI_Nil -1
|
||
|
#define CI_Misc -2
|
||
|
#define CI_Font -3
|
||
|
#define CI_Position -4
|
||
|
#define CI_Appearance -5
|
||
|
#define CI_Behavior -6
|
||
|
#define CI_Data -7
|
||
|
#define CI_List -8
|
||
|
#define CI_Text -9
|
||
|
#define CI_Scale -10
|
||
|
#define CI_DDE -11
|
||
|
#else
|
||
|
#define PROPCAT_Nil -1
|
||
|
#define PROPCAT_Misc -2
|
||
|
#define PROPCAT_Font -3
|
||
|
#define PROPCAT_Position -4
|
||
|
#define PROPCAT_Appearance -5
|
||
|
#define PROPCAT_Behavior -6
|
||
|
#define PROPCAT_Data -7
|
||
|
#define PROPCAT_List -8
|
||
|
#define PROPCAT_Text -9
|
||
|
#define PROPCAT_Scale -10
|
||
|
#define PROPCAT_DDE -11
|
||
|
#endif
|
||
|
|
||
|
//
|
||
|
// Extra interfaces (chrisz)
|
||
|
//
|
||
|
|
||
|
//+-------------------------------------------------------------------------
|
||
|
//
|
||
|
// Help service. (robbear)
|
||
|
//
|
||
|
//--------------------------------------------------------------------------
|
||
|
|
||
|
#define HELPINFO_WHATS_THIS_MODE_ON 1
|
||
|
|
||
|
// { 6d5140c7-7436-11ce-8034-00aa006009fa }
|
||
|
DEFINE_GUID(SID_SHelp, 0x6d5140c7, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
|
||
|
// { 6d5140c8-7436-11ce-8034-00aa006009fa }
|
||
|
DEFINE_GUID(IID_IHelp, 0x6d5140c8, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE IHelp
|
||
|
DECLARE_INTERFACE_(IHelp, IUnknown)
|
||
|
{
|
||
|
BEGIN_INTERFACE
|
||
|
// *** IUnknown methods ***
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||
|
|
||
|
// *** IHelp methods ***
|
||
|
STDMETHOD(GetHelpFile) (THIS_ BSTR * pbstr) PURE;
|
||
|
STDMETHOD(GetHelpInfo) (THIS_ DWORD * pdwHelpInfo) PURE;
|
||
|
STDMETHOD(ShowHelp) (THIS_
|
||
|
LPOLESTR szHelp,
|
||
|
UINT fuCommand,
|
||
|
DWORD dwHelpContext) PURE;
|
||
|
};
|
||
|
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// SApplicationObject Service
|
||
|
// Host applications proffer their application object as this service.
|
||
|
// Various objects implement the "Application" property by returning
|
||
|
// this service.
|
||
|
//
|
||
|
//-------------------------------------------------------------------------
|
||
|
|
||
|
// { 0c539790-12e4-11cf-b661-00aa004cd6d8 }
|
||
|
DEFINE_GUID(SID_SApplicationObject, 0x0c539790, 0x12e4, 0x11cf, 0xb6, 0x61, 0x00, 0xaa, 0x00, 0x4c, 0xd6, 0xd8);
|
||
|
|
||
|
#endif // _OBJEXT_H
|