IPStore (Interfaces)
Last changed: i.mazepov@gmail.com-94.45.138.34

.
Summary
TODO - a short description

C# Definition:

[ComImport]
[Guid("5A6F1EC0-2DB1-11D0-8C39-00C04FD9126B")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
interface IPStore
{
     int GetInfo(IntPtr pProviderInfo);
     int GetProvParam(uint dwParam, IntPtr pcbData, IntPtr ppbData, uint dwFlags);
     int SetProvParam(uint dwParam, uint cbData, IntPtr ppbData, uint dwFlags);
     int CreateType(PST_KEY key, ref Guid pType, PST_TYPEINFO pInfo, uint dwFlags);
     int GetTypeInfo(PST_KEY key, ref Guid pType, out PST_TYPEINFO ppInfo, uint dwFlags);
     int DeleteType(PST_KEY key, ref Guid pType, uint dwFlags);
     int CreateSubtype(PST_KEY key, ref Guid pType, ref Guid pSubtype, PST_TYPEINFO pInfo, PST_ACCESSRULESET pRules, uint dwFlags);
     int GetSubtypeInfo(PST_KEY key, ref Guid pType, ref Guid pSubtype, out IntPtr ppInfo, uint dwFlags);
     int DeleteSubtype(PST_KEY key, ref Guid pType, ref Guid pSubtype, uint dwFlags);
     int ReadAccessRuleset(PST_KEY key, ref Guid pType, ref Guid pSubtype, out PST_ACCESSRULESET ppRules, uint dwFlags);
     int WriteAccessRuleset(PST_KEY key, ref Guid pType, ref Guid pSubtype, PST_ACCESSRULESET pRules, uint dwFlags);
     int EnumTypes(PST_KEY key, uint dwFlags, out IEnumPStoreTypes ppEnum);
     int EnumSubtypes(PST_KEY key, ref Guid pType, uint dwFlags, out IEnumPStoreTypes ppEnum);
     int DeleteItem(PST_KEY key, ref Guid pItemType, ref Guid pItemSubtype, [MarshalAs(UnmanagedType.LPWStr)]string szItemName, IntPtr pPromptInfo, uint dwFlags);
     int ReadItem(PST_KEY key, ref Guid pItemType, ref Guid pItemSubtype, [MarshalAs(UnmanagedType.LPWStr)]string szItemName, IntPtr pcbData, IntPtr ppbData,
        IntPtr pPromptInfo, uint dwFlags);
     int WriteItem(PST_KEY key, ref Guid pItemType, ref Guid pItemSubtype, [MarshalAs(UnmanagedType.LPWStr)]string szItemName, uint cbData, IntPtr pbData,
        IntPtr pPromptInfo, uint dwDefaultConfirmationStyle, uint dwFlags);
     int OpenItem(PST_KEY key, ref Guid pItemType, ref Guid pItemSubtype, [MarshalAs(UnmanagedType.LPWStr)]string szItemName, uint ModeFlags, IntPtr pPromptInfo,
        uint dwFlags);
     int CloseItem(PST_KEY key, ref Guid pItemType, ref Guid pItemSubtype, [MarshalAs(UnmanagedType.LPWStr)]string szItemName, uint dwFlags);
     int EnumItems(PST_KEY key, ref Guid pItemType, ref Guid pItemSubtype, uint dwFlags, out IEnumPStoreItems ppenum);
}

User-Defined Types:

enum PST_KEY : uint
{
    PST_KEY_CURRENT_USER = 0,
    PST_KEY_LOCAL_MACHINE = 1
}

struct PST_TYPEINFO
{
    public uint cbSize;
    [MarshalAs(UnmanagedType.LPWStr)] public string szDisplayName;
}

struct PST_ACCESSRULESET
{
    public uint cbSize;
    public uint cRules;
}

Notes:

IEnumPStoreItems, IEnumPStoreTypes

Documentation
IPStore on MSDN