//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 2000 // // File: vdscmprv.idl // // Abstract: // declarations of interfaces that are exposed by the common layer to // providers. // //---------------------------------------------------------------------------- interface IVdsAdmin; #define MAX_COMPUTERNAME_LENGTH 15 #define MAX_PROVIDERNAME_LENGTH 200 #define MAX_VERSIONSTRING_LENGTH 16 // // IVdsAdmin: // This interface is used by providers to register themselves. Provider // information is stored in registry under // \HKEY_LOCAL_MACHINE\SYSTEM\CurrentContrlSet\Services\VDS\SoftwareProviders // or // \HKEY_LOCAL_MACHINE\SYSTEM\CurrentContrlSet\Services\VDS\HardwareProviders // When VDS service starts up, it looks through the registry and launch // registered providers. // Implemented by: service object // Implemented where: common layer // Accessed by: provider setup // [ object, uuid(d188e97d-85aa-4d33-abc6-26299a10ffc1), pointer_default(unique) ] interface IVdsAdmin : IUnknown { // RegisterProvider: [helpstring("method RegisterProvider")] HRESULT RegisterProvider( [in] VDS_OBJECT_ID providerId, [in] CLSID providerClsid, [in,max_is(MAX_PROVIDERNAME_LENGTH),string] LPWSTR pwszName, [in] VDS_PROVIDER_TYPE type, [in,unique,max_is(MAX_COMPUTERNAME_LENGTH-1),string,disable_consistency_check] LPWSTR pwszMachineName, [in,max_is(MAX_VERSIONSTRING_LENGTH),string] LPWSTR pwszVersion, [in] GUID guidVersionId ); // UnregisterProvider: // Removes provider information from registry. [helpstring("method UnregisterProvider")] HRESULT UnregisterProvider( [in] VDS_OBJECT_ID providerId ); }