//+-------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1994 - 1999. // // File: dsadmin.h // // Contents: DS Admin Object Creation public header // //--------------------------------------------------------------------------- // // CoClass for the Object creation dialog object // // {E301A009-F901-11d2-82B9-00C04F68928B} DEFINE_GUID(CLSID_DsAdminCreateObj, 0xe301a009, 0xf901, 0x11d2, 0x82, 0xb9, 0x0, 0xc0, 0x4f, 0x68, 0x92, 0x8b); // // Interface GUIDs // // {53554A38-F902-11d2-82B9-00C04F68928B} DEFINE_GUID(IID_IDsAdminCreateObj, 0x53554a38, 0xf902, 0x11d2, 0x82, 0xb9, 0x0, 0xc0, 0x4f, 0x68, 0x92, 0x8b); // {F2573587-E6FC-11d2-82AF-00C04F68928B} DEFINE_GUID(IID_IDsAdminNewObj, 0xf2573587, 0xe6fc, 0x11d2, 0x82, 0xaf, 0x0, 0xc0, 0x4f, 0x68, 0x92, 0x8b); // {BE2B487E-F904-11d2-82B9-00C04F68928B} DEFINE_GUID(IID_IDsAdminNewObjPrimarySite, 0xbe2b487e, 0xf904, 0x11d2, 0x82, 0xb9, 0x0, 0xc0, 0x4f, 0x68, 0x92, 0x8b); // {6088EAE2-E7BF-11d2-82AF-00C04F68928B} DEFINE_GUID(IID_IDsAdminNewObjExt, 0x6088eae2, 0xe7bf, 0x11d2, 0x82, 0xaf, 0x0, 0xc0, 0x4f, 0x68, 0x92, 0x8b); // {E4A2B8B3-5A18-11d2-97C1-00A0C9A06D2D} DEFINE_GUID(IID_IDsAdminNotifyHandler, 0xe4a2b8b3, 0x5a18, 0x11d2, 0x97, 0xc1, 0x0, 0xa0, 0xc9, 0xa0, 0x6d, 0x2d); #ifndef _DSADMIN_H #define _DSADMIN_H // ---------------------------------------------------------------------------- // // Interface: IDsAdminCreateObj // // Implemented by the object (implemented by the system) CLSID_DsAdminCreateObj // // Used by: any client needing to invoke the creation UI // #undef INTERFACE #define INTERFACE IDsAdminCreateObj DECLARE_INTERFACE_(IDsAdminCreateObj, IUnknown) { // *** IUnknown methods *** STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; // *** IDsAdminCreateObj methods *** STDMETHOD(Initialize)(THIS_ /*IN*/ IADsContainer* pADsContainerObj, /*IN*/ IADs* pADsCopySource, /*IN*/ LPCWSTR lpszClassName) PURE; STDMETHOD(CreateModal)(THIS_ /*IN*/ HWND hwndParent, /*OUT*/ IADs** ppADsObj) PURE; }; //--------------------------------------------------------------------------- // // Interface: IDsAdminNewObj // // Implemented by: DS Admin // // Used by: creation extension in proc server (both primary and regular) // #undef INTERFACE #define INTERFACE IDsAdminNewObj DECLARE_INTERFACE_(IDsAdminNewObj, IUnknown) { // *** IUnknown methods *** STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; // *** IDsAdminNewObj methods *** STDMETHOD(SetButtons)(THIS_ /*IN*/ ULONG nCurrIndex, /*IN*/ BOOL bValid) PURE; STDMETHOD(GetPageCounts)(THIS_ /*OUT*/ LONG* pnTotal, /*OUT*/ LONG* pnStartIndex) PURE; }; //--------------------------------------------------------------------------- // // Interface: IDsAdminNewObjPrimarySite // // Implemented by: DS Admin // // Used by: creation extension in proc server (primary only) // #undef INTERFACE #define INTERFACE IDsAdminNewObjPrimarySite DECLARE_INTERFACE_(IDsAdminNewObjPrimarySite, IUnknown) { // *** IUnknown methods *** STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; // *** IDsAdminNewObjPrimarySite methods *** STDMETHOD(CreateNew)(THIS_ /*IN*/ LPCWSTR pszName) PURE; STDMETHOD(Commit)(THIS_ ) PURE; }; // // struct passed to IDsAdminNewObjExt::Initialize() // // it contains information regarding UI look // typedef struct { DWORD dwSize; // size of struct, for versioning HICON hObjClassIcon; // class icon for the object to be created LPWSTR lpszWizTitle; // title of the wizard LPWSTR lpszContDisplayName; // container display name (canonical name) } DSA_NEWOBJ_DISPINFO, * LPDSA_NEWOBJ_DISPINFO; // // context flags passed to IDsAdminNewObjExt::OnError() and to IDsAdminNewObjExt::WriteData() // #define DSA_NEWOBJ_CTX_PRECOMMIT 0x00000001 // before SetInfo() #define DSA_NEWOBJ_CTX_COMMIT 0x00000002 // SetInfo(), commit phase #define DSA_NEWOBJ_CTX_POSTCOMMIT 0x00000003 // after SetInfo() #define DSA_NEWOBJ_CTX_CLEANUP 0x00000004 // on post commit fail //--------------------------------------------------------------------------- // // Interface: IDsAdminNewObjExt // // Implemented by: creation extension in proc server (both primary and regular) // // Used by: DS Admin // #undef INTERFACE #define INTERFACE IDsAdminNewObjExt DECLARE_INTERFACE_(IDsAdminNewObjExt, IUnknown) { // *** IUnknown methods *** STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; // *** IDsAdminNewObjExt methods *** STDMETHOD(Initialize)(THIS_ /*IN*/ IADsContainer* pADsContainerObj, /*IN*/ IADs* pADsCopySource, /*IN*/ LPCWSTR lpszClassName, /*IN*/ IDsAdminNewObj* pDsAdminNewObj, /*IN*/ LPDSA_NEWOBJ_DISPINFO pDispInfo) PURE; STDMETHOD(AddPages)(THIS_ /*IN*/ LPFNADDPROPSHEETPAGE lpfnAddPage, /*IN*/ LPARAM lParam) PURE; STDMETHOD(SetObject)(THIS_ /*IN*/ IADs* pADsObj) PURE; STDMETHOD(WriteData)(THIS_ /*IN*/ HWND hWnd, /*IN*/ ULONG uContext) PURE; STDMETHOD(OnError)(THIS_ /*IN*/ HWND hWnd, /*IN*/ HRESULT hr, /*IN*/ ULONG uContext) PURE; STDMETHOD(GetSummaryInfo)(THIS_ /*OUT*/BSTR* pBstrText) PURE; }; // // Notification opcodes for IDsAdminNotifyHandler // #define DSA_NOTIFY_DEL 0x00000001 // delete #define DSA_NOTIFY_REN 0x00000002 // rename #define DSA_NOTIFY_MOV 0x00000004 // move #define DSA_NOTIFY_PROP 0x00000008 // property change #define DSA_NOTIFY_ALL (DSA_NOTIFY_DEL|DSA_NOTIFY_REN|DSA_NOTIFY_MOV|DSA_NOTIFY_PROP) // // TODO: add explaination // // flags to handle additional data // #define DSA_NOTIFY_FLAG_ADDITIONAL_DATA 0x00000002 //process additional extension data? #define DSA_NOTIFY_FLAG_FORCE_ADDITIONAL_DATA 0x00000001 //operation forced //--------------------------------------------------------------------------- // // Interface: IDsAdminNotifyHandler // // Implemented by: notification handler in proc server // // Used by: DS Admin // #undef INTERFACE #define INTERFACE IDsAdminNotifyHandler DECLARE_INTERFACE_(IDsAdminNotifyHandler, IUnknown) { // *** IUnknown methods *** STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; // IDsAdminNotifyHandler methods STDMETHOD(Initialize)(THIS_ /*IN*/ IDataObject* pExtraInfo, /*OUT*/ ULONG* puEventFlags) PURE; STDMETHOD(Begin)(THIS_ /*IN*/ ULONG uEvent, /*IN*/ IDataObject* pArg1, /*IN*/ IDataObject* pArg2, /*OUT*/ ULONG* puFlags, /*OUT*/ BSTR* pBstr) PURE; STDMETHOD(Notify)(THIS_ /*IN*/ ULONG nItem, /*IN*/ ULONG uFlags) PURE; STDMETHOD(End)(THIS_) PURE; }; #endif // _DSADMIN_H