mirror of https://github.com/UMSKT/xpmgr.git
733 lines
24 KiB
Plaintext
733 lines
24 KiB
Plaintext
/***********************************************************************************
|
|
* *
|
|
* Copyright (c) 1999 - 2002, Microsoft Corporation. All rights reserved. *
|
|
* *
|
|
* File - WcmConfig.idl *
|
|
* *
|
|
* Purpose - SMI COM interface definitions *
|
|
* *
|
|
* History - Date Alias Comment *
|
|
* 01/28/2003 shangwu Created *
|
|
* 11/10/2004 shangwu Split into public and private interfaces *
|
|
************************************************************************************/
|
|
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
import "Objidl.idl";
|
|
|
|
#include "guids.h"
|
|
|
|
#define _MIDL_DEFINES // To enable MIDL defines in the following header
|
|
|
|
//_____________________________________________________________________________
|
|
//
|
|
// Forward declarations
|
|
//_____________________________________________________________________________
|
|
|
|
interface ISettingsIdentity;
|
|
interface ISettingsEngine;
|
|
interface ISettingsItem;
|
|
interface ISettingsNamespace;
|
|
interface ISettingsResult; // Error related interface
|
|
interface IItemEnumerator;
|
|
interface ITargetInfo; // Offline target related interface
|
|
interface ISettingsContext;
|
|
|
|
//_____________________________________________________________________________
|
|
//
|
|
// Enum types
|
|
//_____________________________________________________________________________
|
|
|
|
//
|
|
// TargetMode - enumeration options for the current target mode
|
|
//
|
|
typedef enum
|
|
{
|
|
OfflineMode = 1, // disallow use of settings api and
|
|
// do not use live environment settings
|
|
OnlineMode = 2, // allow use of settings api and combine
|
|
// environment with target mappings
|
|
} WcmTargetMode;
|
|
|
|
//
|
|
// NamespaceEnumerationFlags - enumeration options for available namespace
|
|
// These are bit flags that can be OR combined.
|
|
//
|
|
typedef enum
|
|
{
|
|
SharedEnumeration = 1, // namespace installed as shared
|
|
UserEnumeration = 2, // namespace installed as user
|
|
AllEnumeration = SharedEnumeration |
|
|
UserEnumeration,
|
|
} WcmNamespaceEnumerationFlags;
|
|
|
|
//
|
|
// DataType - Data type of a configuration item
|
|
//
|
|
typedef enum
|
|
{
|
|
dataTypeByte = 1,
|
|
dataTypeSByte = 2,
|
|
dataTypeUInt16 = 3,
|
|
dataTypeInt16 = 4,
|
|
dataTypeUInt32 = 5,
|
|
dataTypeInt32 = 6,
|
|
dataTypeUInt64 = 7,
|
|
dataTypeInt64 = 8,
|
|
dataTypeBoolean = 11,
|
|
dataTypeString = 12,
|
|
dataTypeFlagArray = 0x8000
|
|
} WcmDataType;
|
|
|
|
//
|
|
// SettingType - Setting type of a configuration item
|
|
//
|
|
typedef enum
|
|
{
|
|
settingTypeScalar = 1,
|
|
settingTypeComplex = 2,
|
|
settingTypeList = 3
|
|
} WcmSettingType;
|
|
|
|
//
|
|
// RestrictionFacets - restriction facet flags
|
|
//
|
|
typedef enum
|
|
{
|
|
restrictionFacetMaxLength = 0x1,
|
|
restrictionFacetEnumeration = 0x2,
|
|
restrictionFacetMaxInclusive = 0x4,
|
|
restrictionFacetMinInclusive = 0x8,
|
|
|
|
} WcmRestrictionFacets;
|
|
|
|
//
|
|
// UserStaus - Different status of user
|
|
//
|
|
typedef enum
|
|
{
|
|
UnknownStatus = 0, // User status is not known
|
|
UserRegistered = 1, // User is registered with SMI
|
|
UserUnregistered = 2, // User is not registered with SMI
|
|
UserLoaded = 3, // User hive is loaded
|
|
UserUnloaded = 4, // User hive is not yet loaded
|
|
} WcmUserStatus;
|
|
|
|
//
|
|
// NamespaceAccess - Namespace access options
|
|
//
|
|
typedef enum
|
|
{
|
|
ReadOnlyAccess = 1, // settings are readonly
|
|
ReadWriteAccess = 2, // settings are readable, writable & commitable
|
|
} WcmNamespaceAccess;
|
|
|
|
//_____________________________________________________________________________
|
|
//
|
|
// IItemEnumerator interface
|
|
//_____________________________________________________________________________
|
|
//
|
|
|
|
[
|
|
local,
|
|
object, nonextensible, pointer_default(unique),
|
|
uuid(UUID_IItemEnumerator),
|
|
helpstring("IItemEnumerator Interface"),
|
|
]
|
|
interface IItemEnumerator : IUnknown
|
|
{
|
|
[helpstring("Returns the current item")]
|
|
HRESULT Current(
|
|
[out, retval] VARIANT* Item);
|
|
|
|
//
|
|
// MoveNext - Move to next item if available.
|
|
// Return - S_OK means the next item is available.
|
|
// S_FALSE means there is no more item and the enumeration
|
|
// has come to an end.
|
|
//
|
|
[helpstring("Moves to the next item")]
|
|
HRESULT MoveNext(
|
|
[out, retval] BOOL* ItemValid);
|
|
|
|
[helpstring("Resets the enumerator and make it not positioned")]
|
|
HRESULT Reset();
|
|
};
|
|
|
|
|
|
//_____________________________________________________________________________
|
|
//
|
|
// ISettingsIdentity - Settings identity, minimum required attributes are name,
|
|
// version, language.
|
|
//_____________________________________________________________________________
|
|
//
|
|
|
|
cpp_quote("#define WCM_SETTINGS_ID_NAME L\"name\"")
|
|
cpp_quote("#define WCM_SETTINGS_ID_VERSION L\"version\"")
|
|
cpp_quote("#define WCM_SETTINGS_ID_LANGUAGE L\"language\"")
|
|
cpp_quote("#define WCM_SETTINGS_ID_ARCHITECTURE L\"architecture\"")
|
|
cpp_quote("#define WCM_SETTINGS_ID_TOKEN L\"token\"")
|
|
cpp_quote("#define WCM_SETTINGS_ID_URI L\"uri\"")
|
|
cpp_quote("#define WCM_SETTINGS_ID_VERSION_SCOPE L\"versionScope\"")
|
|
|
|
cpp_quote("#define WCM_SETTINGS_ID_FLAG_REFERENCE 0x00000000")
|
|
cpp_quote("#define WCM_SETTINGS_ID_FLAG_DEFINITION 0x00000001")
|
|
|
|
|
|
[
|
|
local,
|
|
object, nonextensible, pointer_default(unique),
|
|
uuid(UUID_ISettingsIdentity),
|
|
helpstring("ISettingsIdentity Interface")
|
|
]
|
|
interface ISettingsIdentity : IUnknown
|
|
{
|
|
[helpstring("Get settings identity attributes")]
|
|
HRESULT GetAttribute(
|
|
[in] void* Reserved,
|
|
[in, string] const WCHAR* Name,
|
|
[out, retval] BSTR* Value);
|
|
|
|
[helpstring("Set settings identity attributes")]
|
|
HRESULT SetAttribute(
|
|
[in] void* Reserved,
|
|
[in, string] const WCHAR* Name,
|
|
[in, string] const WCHAR* Value);
|
|
|
|
[helpstring("Get settings identity flags")]
|
|
HRESULT GetFlags(
|
|
[out, retval] DWORD* Flags);
|
|
|
|
[helpstring("Set settings identity flags")]
|
|
HRESULT SetFlags(
|
|
[in] DWORD Flags);
|
|
};
|
|
|
|
//_____________________________________________________________________________
|
|
//
|
|
// ITargetInfo - Define offline target information specially file and
|
|
// registry locations.
|
|
//_____________________________________________________________________________
|
|
//
|
|
|
|
[
|
|
local,
|
|
object, nonextensible, pointer_default(unique),
|
|
uuid(UUID_ITargetInfo),
|
|
helpstring("ITargetInfo Interface")
|
|
]
|
|
interface ITargetInfo : IUnknown
|
|
{
|
|
[helpstring("Gets the current target mode")]
|
|
HRESULT GetTargetMode(
|
|
[out, retval] WcmTargetMode* TargetMode);
|
|
|
|
[helpstring("Sets the current target mode")]
|
|
HRESULT SetTargetMode(
|
|
[in] WcmTargetMode TargetMode);
|
|
|
|
[helpstring("Gets the current temporary store location")]
|
|
HRESULT GetTemporaryStoreLocation(
|
|
[out, retval] BSTR* TemporaryStoreLocation);
|
|
|
|
[helpstring("Sets the current temporary store location")]
|
|
HRESULT SetTemporaryStoreLocation(
|
|
[in, string] const WCHAR* TemporaryStoreLocation);
|
|
|
|
[helpstring("Gets a unique id associated with current target")]
|
|
HRESULT GetTargetID(
|
|
[out, retval] BSTR* TargetID);
|
|
|
|
[helpstring("Sets a unique id associated with current target")]
|
|
HRESULT SetTargetID(
|
|
[in] GUID TargetID);
|
|
|
|
[helpstring("Gets processor architecture associated with current target")]
|
|
HRESULT GetTargetProcessorArchitecture(
|
|
[out, retval] BSTR* ProcessorArchitecture);
|
|
|
|
[helpstring("Sets processor architecture associated with current target")]
|
|
HRESULT SetTargetProcessorArchitecture(
|
|
[in, string] const WCHAR* ProcessorArchitecture);
|
|
|
|
[helpstring("Gets a property value for offline installation location")]
|
|
HRESULT GetProperty(
|
|
[in] BOOL Offline,
|
|
[in, string] const WCHAR* Property,
|
|
[out, retval] BSTR* Value);
|
|
|
|
[helpstring("Sets a property value for offline installation location")]
|
|
HRESULT SetProperty(
|
|
[in] BOOL Offline,
|
|
[in, string] const WCHAR* Property,
|
|
[in, string] const WCHAR* Value);
|
|
|
|
[helpstring("Enumerator for offline properties")]
|
|
HRESULT GetEnumerator(
|
|
[out, retval] IItemEnumerator** Enumerator);
|
|
|
|
[helpstring("Expands a location string to indicate the offline installation location")]
|
|
HRESULT ExpandTarget(
|
|
[in] BOOL Offline,
|
|
[in, string] const WCHAR* Location,
|
|
[out, retval] BSTR* ExpandedLocation);
|
|
|
|
[helpstring("Expands a location string to indicate the offline installation location")]
|
|
HRESULT ExpandTargetPath(
|
|
[in] BOOL Offline,
|
|
[in, string] const WCHAR* Location,
|
|
[out, retval] BSTR* ExpandedLocation);
|
|
|
|
[helpstring("Sets the module path for offline installation location")]
|
|
HRESULT SetModulePath(
|
|
[in, string] const WCHAR* Module,
|
|
[in, string] const WCHAR* Path);
|
|
|
|
[helpstring("Loads the module from offline installation location")]
|
|
HRESULT LoadModule(
|
|
[in, string] const WCHAR* Module,
|
|
[out, retval] HMODULE* ModuleHandle);
|
|
|
|
[helpstring("Sets a opaque context object for wow64 redirection")]
|
|
HRESULT SetWow64Context(
|
|
[in, string] const WCHAR* InstallerModule,
|
|
[in] BYTE* Wow64Context);
|
|
|
|
[helpstring("Translate paths for wow64 redirection")]
|
|
HRESULT TranslateWow64(
|
|
[in, string] const WCHAR* ClientArchitecture,
|
|
[in, string] const WCHAR* Value,
|
|
[out, retval] BSTR* TranslatedValue);
|
|
|
|
[helpstring("Set schema hive location")]
|
|
HRESULT SetSchemaHiveLocation(
|
|
[in] LPCWSTR pwzHiveDir
|
|
);
|
|
|
|
[helpstring("Get schema hive location")]
|
|
HRESULT GetSchemaHiveLocation(
|
|
[out, retval] BSTR *pHiveLocation
|
|
);
|
|
|
|
[helpstring("Set the name of the mount location of the schema hive")]
|
|
HRESULT SetSchemaHiveMountName(
|
|
[in] LPCWSTR pwzMountName
|
|
);
|
|
|
|
[helpstring("Get the name of the mount location of the schema hive")]
|
|
HRESULT GetSchemaHiveMountName(
|
|
[out, retval] BSTR *pMountName
|
|
);
|
|
};
|
|
|
|
//_____________________________________________________________________________
|
|
//
|
|
// ISettingsEngine - Namespace enumeration, access and management APIs
|
|
//_____________________________________________________________________________
|
|
//
|
|
|
|
cpp_quote("#define LINK_STORE_TO_ENGINE_INSTANCE 0x00000001")
|
|
|
|
[
|
|
local,
|
|
object, nonextensible, pointer_default(unique),
|
|
uuid(UUID_ISettingsEngine),
|
|
helpstring("ISettingsEngine Interface")
|
|
]
|
|
interface ISettingsEngine : IUnknown
|
|
{
|
|
[helpstring("Returns the dictionary of installed namespaces")]
|
|
HRESULT GetNamespaces(
|
|
[in] WcmNamespaceEnumerationFlags Flags,
|
|
[in] void* Reserved,
|
|
[out, retval] IItemEnumerator** Namespaces);
|
|
|
|
[helpstring("Opens an existing namespace")]
|
|
HRESULT GetNamespace(
|
|
[in] ISettingsIdentity* SettingsID,
|
|
[in] WcmNamespaceAccess Access,
|
|
[in] void* Reserved,
|
|
[out, retval] ISettingsNamespace** NamespaceItem);
|
|
|
|
[helpstring("Get a message to describe an HRESULT code")]
|
|
HRESULT GetErrorDescription(
|
|
[in] LONG HResult,
|
|
[out, retval] BSTR* Message);
|
|
|
|
//
|
|
// Create other objects
|
|
//
|
|
[helpstring("Creates an empty settings identity")]
|
|
HRESULT CreateSettingsIdentity(
|
|
[out, retval] ISettingsIdentity** SettingsID);
|
|
|
|
[helpstring("Get the status of the schema store")]
|
|
HRESULT GetStoreStatus(
|
|
[in] void* Reserved,
|
|
[out] WcmUserStatus* Status);
|
|
|
|
[helpstring("Initialize and load the schema store")]
|
|
HRESULT LoadStore(
|
|
[in] DWORD Flags);
|
|
|
|
[helpstring("Unload the schema store and free resources")]
|
|
HRESULT UnloadStore(
|
|
[in] void* Reserved);
|
|
|
|
[helpstring("Registers a namespace from stream, and upgrades setting values from older version")]
|
|
HRESULT RegisterNamespace(
|
|
[in] ISettingsIdentity* SettingsID,
|
|
[in] IStream* Stream,
|
|
[in] BOOL PushSettings,
|
|
[out, retval] VARIANT* Results);
|
|
|
|
[helpstring("Unregisters an existing namespace")]
|
|
HRESULT UnregisterNamespace(
|
|
[in] ISettingsIdentity* SettingsID,
|
|
[in] BOOL RemoveSettings);
|
|
|
|
//
|
|
// Support for offline and other scenarios
|
|
//
|
|
|
|
[helpstring("Creates an empty target")]
|
|
HRESULT CreateTargetInfo(
|
|
[out, retval] ITargetInfo** Target);
|
|
|
|
[helpstring("Gets the current offline target for engine")]
|
|
HRESULT GetTargetInfo(
|
|
[out, retval] ITargetInfo** Target);
|
|
|
|
[helpstring("Sets the current offline target for engine")]
|
|
HRESULT SetTargetInfo(
|
|
[in] ITargetInfo* Target);
|
|
|
|
[helpstring("Creates an settings context")]
|
|
HRESULT CreateSettingsContext(
|
|
[in] DWORD Flags,
|
|
[in] void* Reserved,
|
|
[out, retval] ISettingsContext** SettingsContext);
|
|
|
|
[helpstring("Sets the current settings context for engine")]
|
|
HRESULT SetSettingsContext(
|
|
[in] ISettingsContext* SettingsContext);
|
|
|
|
[helpstring("Applies the context to this engine")]
|
|
HRESULT ApplySettingsContext(
|
|
[in] ISettingsContext *SettingsContext,
|
|
[out, size_is(,*pcIdentities)][annotation("__deref_out_ecount(*pcIdentities)")] LPWSTR **pppwzIdentities,
|
|
[out, retval] SIZE_T *pcIdentities);
|
|
|
|
[helpstring("Gets the current settings context for engine")]
|
|
HRESULT GetSettingsContext(
|
|
[out, retval] ISettingsContext** SettingsContext);
|
|
|
|
};
|
|
|
|
//_____________________________________________________________________________
|
|
//
|
|
// ISettingsItem - Generic item class for navigating namespace virtual doc.
|
|
// This class describe the common functionality of config
|
|
// item - like get/put value of the item, enumerating
|
|
// attributes associted with config item, getting or enumerating
|
|
// child items, add child items etc.
|
|
//_____________________________________________________________________________
|
|
//
|
|
|
|
[
|
|
local,
|
|
object, nonextensible, pointer_default(unique),
|
|
uuid(UUID_ISettingsItem),
|
|
helpstring("ISettingsItem Interface")
|
|
]
|
|
interface ISettingsItem : IUnknown
|
|
{
|
|
[helpstring("Gets the name of the current item")]
|
|
HRESULT GetName(
|
|
[out, retval] BSTR* Name);
|
|
|
|
[helpstring("Gets the current value from this item")]
|
|
HRESULT GetValue(
|
|
[out, retval] VARIANT* Value);
|
|
|
|
[helpstring("Sets the current value in this item")]
|
|
HRESULT SetValue(
|
|
[in] const VARIANT* Value);
|
|
|
|
//
|
|
// Type Information
|
|
//
|
|
|
|
[helpstring("Gets the type information for this item")]
|
|
HRESULT GetSettingType(
|
|
[out, retval] WcmSettingType* Type);
|
|
|
|
[helpstring("Gets the type information for this item")]
|
|
HRESULT GetDataType(
|
|
[out, retval] WcmDataType* Type);
|
|
|
|
//
|
|
// GetValueRaw - Gets the value from the current item as
|
|
// a byte array. The caller must release the
|
|
// returned data by calling CoTaskMemFree.
|
|
//
|
|
HRESULT GetValueRaw(
|
|
[out, size_is(,*DataSize)] BYTE** Data,
|
|
[out, retval] ULONG* DataSize);
|
|
|
|
//
|
|
// SetValueRaw - Sets the value of the current item.
|
|
// The value is given as a byte array.
|
|
//
|
|
HRESULT SetValueRaw(
|
|
[in] LONG DataType,
|
|
[in, size_is(DataSize)] const BYTE* Data,
|
|
[in] ULONG DataSize);
|
|
|
|
//
|
|
// Child access api
|
|
//
|
|
|
|
[helpstring("Reports whether the current item has any child item")]
|
|
HRESULT HasChild(
|
|
[out, retval] BOOL* ItemHasChild);
|
|
|
|
[helpstring("Gets the dictionary of children")]
|
|
HRESULT Children(
|
|
[out, retval] IItemEnumerator** Children);
|
|
|
|
[helpstring("Gets an existing child")]
|
|
HRESULT GetChild(
|
|
[in, string] const WCHAR* Name,
|
|
[out, retval] ISettingsItem** Child);
|
|
|
|
[helpstring("Gets a setting object specified by path")]
|
|
HRESULT GetSettingByPath(
|
|
[in, string] const WCHAR* Path,
|
|
[out, retval] ISettingsItem** Setting);
|
|
|
|
[helpstring("Creates a setting object specified by path")]
|
|
HRESULT CreateSettingByPath(
|
|
[in, string] const WCHAR* Path,
|
|
[out, retval] ISettingsItem** Setting);
|
|
|
|
[helpstring("Removes a setting object specified by path")]
|
|
HRESULT RemoveSettingByPath(
|
|
[in, string] const WCHAR* Path);
|
|
|
|
//
|
|
// List api
|
|
|
|
[helpstring("Gets the list information for this item")]
|
|
HRESULT GetListKeyInformation(
|
|
[out] BSTR* KeyName,
|
|
[out, retval] WcmDataType* DataType);
|
|
|
|
[helpstring("Creates a new list element")]
|
|
HRESULT CreateListElement(
|
|
[in] const VARIANT* KeyData,
|
|
[out, retval] ISettingsItem** Child);
|
|
|
|
[helpstring("Removes an existing list element")]
|
|
HRESULT RemoveListElement(
|
|
[in, string] LPCWSTR ElementName);
|
|
|
|
//
|
|
// Attribute access API
|
|
//
|
|
|
|
[helpstring("Gets the dictionary of attributes")]
|
|
HRESULT Attributes(
|
|
[out, retval] IItemEnumerator** Attributes);
|
|
|
|
[helpstring("Gets value from an attribute")]
|
|
HRESULT GetAttribute(
|
|
[in, string] const WCHAR* Name,
|
|
[out, retval] VARIANT* Value);
|
|
|
|
[helpstring("Get the full path of the current item")]
|
|
HRESULT GetPath(
|
|
[out, retval] BSTR* Path);
|
|
|
|
[helpstring("Get the restrictions defined on this item")]
|
|
HRESULT GetRestrictionFacets(
|
|
[out, retval] WcmRestrictionFacets* RestrictionFacets);
|
|
|
|
[helpstring("Get the information for a given restriction")]
|
|
HRESULT GetRestriction(
|
|
[in] WcmRestrictionFacets RestrictionFacet,
|
|
[out, retval] VARIANT *FacetData);
|
|
|
|
[helpstring("Get the value of the key for this list item")]
|
|
HRESULT GetKeyValue(
|
|
[out, retval] VARIANT *Value);
|
|
};
|
|
|
|
//_____________________________________________________________________________
|
|
//
|
|
// ISettingsNamespace interface
|
|
//_____________________________________________________________________________
|
|
//
|
|
|
|
[
|
|
local,
|
|
object, nonextensible, pointer_default(unique),
|
|
uuid(UUID_ISettingsNamespace),
|
|
helpstring("ISettingsNamespace Interface")
|
|
]
|
|
interface ISettingsNamespace : IUnknown
|
|
{
|
|
[helpstring("Gets the identity of this namespace")]
|
|
HRESULT GetIdentity(
|
|
[out, retval] ISettingsIdentity** SettingsID);
|
|
|
|
[helpstring("Gets the settings enumerator of this namespace")]
|
|
HRESULT Settings(
|
|
[out, retval] IItemEnumerator** Settings);
|
|
|
|
//
|
|
// Methods
|
|
//
|
|
[helpstring("Makes changes to be persistent and visible to next client")]
|
|
HRESULT Save(
|
|
[in] BOOL PushSettings,
|
|
[out, retval] ISettingsResult** Result);
|
|
|
|
[helpstring("Gets a setting object specified by path")]
|
|
HRESULT GetSettingByPath(
|
|
[in, string] const WCHAR* Path,
|
|
[out, retval] ISettingsItem** Setting);
|
|
|
|
[helpstring("Creates a setting object specified by path")]
|
|
HRESULT CreateSettingByPath(
|
|
[in, string] const WCHAR* Path,
|
|
[out, retval] ISettingsItem** Setting);
|
|
|
|
[helpstring("Removes a setting object specified by path")]
|
|
HRESULT RemoveSettingByPath(
|
|
[in, string] const WCHAR* Path);
|
|
|
|
[helpstring("Gets value from an attribute")]
|
|
HRESULT GetAttribute(
|
|
[in, string] const WCHAR* Name,
|
|
[out, retval] VARIANT* Value);
|
|
};
|
|
|
|
|
|
//_____________________________________________________________________________
|
|
//
|
|
// ISettingsResult interface
|
|
//_____________________________________________________________________________
|
|
//
|
|
|
|
[
|
|
local,
|
|
object, nonextensible, pointer_default(unique),
|
|
uuid(UUID_ISettingsResult),
|
|
helpstring("ISettingsResult Interface")
|
|
]
|
|
interface ISettingsResult : IUnknown
|
|
{
|
|
[helpstring("Returns the description of the error")]
|
|
HRESULT GetDescription([out,retval] BSTR* description);
|
|
|
|
[helpstring("Returns the HRESULT error code for the error")]
|
|
HRESULT GetErrorCode([out,retval] HRESULT * hrOut);
|
|
|
|
[helpstring("Returns the description of the context surrounding the error")]
|
|
HRESULT GetContextDescription([out,retval] BSTR * description);
|
|
|
|
[helpstring("Returns the line on which the error occurred")]
|
|
HRESULT GetLine([out,retval] DWORD * dwLine);
|
|
|
|
[helpstring("Returns the column on which the error occurred")]
|
|
HRESULT GetColumn([out,retval] DWORD * dwColumn);
|
|
|
|
[helpstring("Returns the file or path where the error occured")]
|
|
HRESULT GetSource([out,retval] BSTR * file);
|
|
};
|
|
|
|
//_____________________________________________________________________________
|
|
//
|
|
// ISettingsContext interface
|
|
//_____________________________________________________________________________
|
|
//
|
|
|
|
cpp_quote("#define LIMITED_VALIDATION_MODE 0x00000001")
|
|
|
|
|
|
[
|
|
local,
|
|
object, nonextensible, pointer_default(unique),
|
|
uuid(UUID_ISettingsContext),
|
|
helpstring("ISettingsContext Interface"),
|
|
]
|
|
interface ISettingsContext : IUnknown
|
|
{
|
|
[helpstring("Serializes the data in this context into the provided stream")]
|
|
HRESULT Serialize(
|
|
[in] IStream *pStream,
|
|
[in] ITargetInfo *pTarget);
|
|
|
|
[helpstring("Deserializes the data in the provided stream into this context")]
|
|
HRESULT Deserialize(
|
|
[in] IStream *pStream,
|
|
[in] ITargetInfo *pTarget,
|
|
[out, size_is(,*pcResultCount)] ISettingsResult ***pppResults,
|
|
[out, retval] SIZE_T *pcResultCount);
|
|
|
|
[helpstring("Sets a user defined piece of data")]
|
|
HRESULT SetUserData([in] void *pUserData);
|
|
|
|
[helpstring("Gets a user defined piece of data")]
|
|
HRESULT GetUserData([out, retval] void **pUserData);
|
|
|
|
[helpstring("Gets the namespaces that exist in the context")]
|
|
HRESULT GetNamespaces([out, retval] IItemEnumerator **ppNamespaceIds);
|
|
|
|
[helpstring("Gets the setting changes from the context for the given namespace")]
|
|
HRESULT GetStoredSettings(
|
|
[in] ISettingsIdentity *pIdentity,
|
|
[out] IItemEnumerator **ppAddedSettings,
|
|
[out] IItemEnumerator **ppModifiedSettings,
|
|
[out] IItemEnumerator **ppDeletedSettings);
|
|
|
|
[helpstring("Reverts the setting in the namespace")]
|
|
HRESULT RevertSetting(
|
|
[in] ISettingsIdentity *pIdentity,
|
|
[in] LPCWSTR pwzSetting);
|
|
|
|
};
|
|
|
|
//_____________________________________________________________________________
|
|
//
|
|
// Type library and CoClass definitions for dispatch api
|
|
//_____________________________________________________________________________
|
|
//
|
|
|
|
#ifndef MAKE_VERSION
|
|
#define MAKE_VERSION(a,b) a##.##b
|
|
#endif
|
|
|
|
[
|
|
uuid(UUID_LibraryWcm),
|
|
helpfile("WcmConfig.HLP"),
|
|
helpstring("Settings Management Infrastructure Library"),
|
|
lcid(0), //lcid(0x0409),
|
|
version( MAKE_VERSION(WCMTYPELIB_MAJOR_VERSION, WCMTYPELIB_MINOR_VERSION) )
|
|
]
|
|
library Wcm
|
|
{
|
|
importlib("stdole32.tlb");
|
|
|
|
[
|
|
uuid(UUID_ClassSettingsEngine),
|
|
helpstring("SMI engine class")
|
|
]
|
|
coclass SettingsEngine
|
|
{
|
|
[default] interface ISettingsEngine;
|
|
};
|
|
};
|
|
|