Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
2.2 KiB

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