| 1 |
//------------------------------------------------------------------------------
|
| 2 |
// File: RegBag.idl
|
| 3 |
//
|
| 4 |
// Desc: IDL source for RegBag.dll.
|
| 5 |
//
|
| 6 |
// Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
|
| 7 |
//------------------------------------------------------------------------------
|
| 8 |
|
| 9 |
|
| 10 |
import "objidl.idl";
|
| 11 |
import "oaidl.idl";
|
| 12 |
import "ocidl.idl";
|
| 13 |
|
| 14 |
|
| 15 |
//*****************************************************************************
|
| 16 |
///////////////////////////////////////////////////////////////////////////////
|
| 17 |
//
|
| 18 |
// Custom Factory interface
|
| 19 |
// since com doesn't support ctors or initialization parameters on std factory interface
|
| 20 |
// we have a custom creation interface
|
| 21 |
//
|
| 22 |
///////////////////////////////////////////////////////////////////////////////
|
| 23 |
//*****************************************************************************
|
| 24 |
///////////////////////////////////////////////////////////////////////////////////////
|
| 25 |
[object,
|
| 26 |
hidden, restricted,
|
| 27 |
uuid(8A674B48-1F63-11d3-B64C-00C04F79498E),
|
| 28 |
helpstring("Create property bag backed by registry"),
|
| 29 |
pointer_default(unique),
|
| 30 |
local
|
| 31 |
]
|
| 32 |
interface ICreatePropBagOnRegKey : IUnknown {
|
| 33 |
// NOTE: it is up to the caller to set the correct registry access based on the interface
|
| 34 |
// and methods the caller intends to use
|
| 35 |
// IPropertyBag2::GetPropertyInfo and CountProperties require both KEY_QUERY_VALUE and KEY_ENUMERATE_SUBKEYS
|
| 36 |
// IPropertyBagXXX::Read requires KEY_READ
|
| 37 |
// IPropertyBagXXX::Write requires KEY_WRITE
|
| 38 |
// also, you must CoTaskMemFree the name string from GetPropertyInfo
|
| 39 |
// if you write a value of VT_EMPTY or VT_NULL the property will be removed from the bag and the corresponding
|
| 40 |
// registry info will be deleted.
|
| 41 |
HRESULT Create([in] HKEY hkey, [in] LPCOLESTR subkey, [in] DWORD ulOptions, [in] DWORD samDesired, REFIID iid, [out] LPVOID *ppBag);
|
| 42 |
};
|
| 43 |
|