mirror of https://github.com/UMSKT/xpmgr.git
291 lines
10 KiB
Plaintext
291 lines
10 KiB
Plaintext
import "wtypes.idl";
|
|
import "shobjidl.idl";
|
|
import "unknwn.idl";
|
|
|
|
[v1_enum] typedef enum _CREDENTIAL_PROVIDER_USAGE_SCENARIO
|
|
{
|
|
CPUS_INVALID = 0,
|
|
CPUS_LOGON,
|
|
CPUS_UNLOCK_WORKSTATION,
|
|
CPUS_CHANGE_PASSWORD,
|
|
CPUS_CREDUI,
|
|
CPUS_PLAP,
|
|
} CREDENTIAL_PROVIDER_USAGE_SCENARIO;
|
|
|
|
[v1_enum] typedef enum _CREDENTIAL_PROVIDER_FIELD_TYPE
|
|
{
|
|
CPFT_INVALID = 0,
|
|
CPFT_LARGE_TEXT,
|
|
CPFT_SMALL_TEXT,
|
|
CPFT_COMMAND_LINK,
|
|
CPFT_EDIT_TEXT,
|
|
CPFT_PASSWORD_TEXT,
|
|
CPFT_TILE_IMAGE,
|
|
CPFT_CHECKBOX,
|
|
CPFT_COMBOBOX,
|
|
CPFT_SUBMIT_BUTTON,
|
|
} CREDENTIAL_PROVIDER_FIELD_TYPE;
|
|
|
|
[v1_enum] typedef enum _CREDENTIAL_PROVIDER_FIELD_STATE
|
|
{
|
|
CPFS_HIDDEN = 0,
|
|
CPFS_DISPLAY_IN_SELECTED_TILE,
|
|
CPFS_DISPLAY_IN_DESELECTED_TILE,
|
|
CPFS_DISPLAY_IN_BOTH,
|
|
} CREDENTIAL_PROVIDER_FIELD_STATE;
|
|
|
|
[v1_enum] typedef enum _CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE
|
|
{
|
|
CPFIS_NONE = 0,
|
|
CPFIS_READONLY,
|
|
CPFIS_DISABLED,
|
|
CPFIS_FOCUSED,
|
|
} CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE;
|
|
|
|
//
|
|
// Note: values for guidFieldType used by Microsoft implementations of ICredentialProvider
|
|
// can be found in shlguid.h.
|
|
//
|
|
typedef struct _CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR
|
|
{
|
|
DWORD dwFieldID;
|
|
CREDENTIAL_PROVIDER_FIELD_TYPE cpft;
|
|
LPWSTR pszLabel;
|
|
GUID guidFieldType;
|
|
} CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR;
|
|
|
|
[v1_enum] typedef enum _CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE
|
|
{
|
|
CPGSR_NO_CREDENTIAL_NOT_FINISHED,
|
|
CPGSR_NO_CREDENTIAL_FINISHED,
|
|
CPGSR_RETURN_CREDENTIAL_FINISHED,
|
|
} CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE;
|
|
|
|
[v1_enum] typedef enum _CREDENTIAL_PROVIDER_STATUS_ICON
|
|
{
|
|
CPSI_NONE = 0,
|
|
CPSI_ERROR,
|
|
CPSI_WARNING,
|
|
CPSI_SUCCESS,
|
|
} CREDENTIAL_PROVIDER_STATUS_ICON;
|
|
|
|
typedef struct _CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION
|
|
{
|
|
ULONG ulAuthenticationPackage;
|
|
GUID clsidCredentialProvider;
|
|
ULONG cbSerialization;
|
|
[size_is(cbSerialization)] byte* rgbSerialization;
|
|
} CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION;
|
|
|
|
//
|
|
// No idl files contain NTSTATUS. Therefore we mirror its definition in ntdef.h.
|
|
//
|
|
#ifndef NTSTATUS
|
|
typedef LONG NTSTATUS;
|
|
#endif
|
|
|
|
cpp_quote("#define CREDENTIAL_PROVIDER_NO_DEFAULT ((DWORD)-1)")
|
|
|
|
interface ICredentialProviderCredentialEvents; // forward
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(ref),
|
|
uuid(63913a93-40c1-481a-818d-4072ff8c70cc),
|
|
]
|
|
interface ICredentialProviderCredential : IUnknown
|
|
{
|
|
HRESULT Advise([in] ICredentialProviderCredentialEvents* pcpce);
|
|
HRESULT UnAdvise();
|
|
|
|
HRESULT SetSelected([out] BOOL* pbAutoLogon);
|
|
HRESULT SetDeselected();
|
|
|
|
HRESULT GetFieldState([in] DWORD dwFieldID,
|
|
[out] CREDENTIAL_PROVIDER_FIELD_STATE* pcpfs,
|
|
[out] CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE* pcpfis);
|
|
|
|
HRESULT GetStringValue([in] DWORD dwFieldID, [out, string] LPWSTR* ppsz);
|
|
HRESULT GetBitmapValue([in] DWORD dwFieldID, [out] HBITMAP* phbmp);
|
|
HRESULT GetCheckboxValue([in] DWORD dwFieldID, [out] BOOL* pbChecked, [out, string] LPWSTR* ppszLabel);
|
|
HRESULT GetSubmitButtonValue([in] DWORD dwFieldID, [out] DWORD* pdwAdjacentTo);
|
|
|
|
HRESULT GetComboBoxValueCount([in] DWORD dwFieldID, [out] DWORD* pcItems, [out] DWORD* pdwSelectedItem);
|
|
HRESULT GetComboBoxValueAt([in] DWORD dwFieldID, DWORD dwItem, [out, string] LPWSTR* ppszItem);
|
|
|
|
HRESULT SetStringValue([in] DWORD dwFieldID, [in, string] LPCWSTR psz);
|
|
HRESULT SetCheckboxValue([in] DWORD dwFieldID, [in] BOOL bChecked);
|
|
HRESULT SetComboBoxSelectedValue([in] DWORD dwFieldID, [in] DWORD dwSelectedItem);
|
|
HRESULT CommandLinkClicked([in] DWORD dwFieldID);
|
|
|
|
HRESULT GetSerialization([out] CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE* pcpgsr,
|
|
[out] CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION* pcpcs,
|
|
[out] LPWSTR* ppszOptionalStatusText,
|
|
[out] CREDENTIAL_PROVIDER_STATUS_ICON* pcpsiOptionalStatusIcon);
|
|
HRESULT ReportResult([in] NTSTATUS ntsStatus,
|
|
[in] NTSTATUS ntsSubstatus,
|
|
[out] LPWSTR* ppszOptionalStatusText,
|
|
[out] CREDENTIAL_PROVIDER_STATUS_ICON* pcpsiOptionalStatusIcon);
|
|
};
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(ref),
|
|
uuid(9090be5b-502b-41fb-bccc-0049a6c7254b),
|
|
]
|
|
interface IQueryContinueWithStatus : IQueryContinue
|
|
{
|
|
HRESULT SetStatusMessage([in, string] LPCWSTR psz);
|
|
};
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(ref),
|
|
uuid(9387928b-ac75-4bf9-8ab2-2b93c4a55290),
|
|
]
|
|
interface IConnectableCredentialProviderCredential : ICredentialProviderCredential
|
|
{
|
|
HRESULT Connect([in] IQueryContinueWithStatus* pqcws);
|
|
HRESULT Disconnect();
|
|
};
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(ref),
|
|
uuid(fa6fa76b-66b7-4b11-95f1-86171118e816),
|
|
]
|
|
interface ICredentialProviderCredentialEvents : IUnknown
|
|
{
|
|
HRESULT SetFieldState([in] ICredentialProviderCredential* pcpc,
|
|
[in] DWORD dwFieldID,
|
|
[in] CREDENTIAL_PROVIDER_FIELD_STATE cpfs);
|
|
HRESULT SetFieldInteractiveState([in] ICredentialProviderCredential* pcpc,
|
|
[in] DWORD dwFieldID,
|
|
[in] CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE cpfis);
|
|
|
|
HRESULT SetFieldString([in] ICredentialProviderCredential* pcpc,
|
|
[in] DWORD dwFieldID,
|
|
[in, string, unique] LPCWSTR psz);
|
|
HRESULT SetFieldCheckbox([in] ICredentialProviderCredential* pcpc,
|
|
[in] DWORD dwFieldID,
|
|
[in] BOOL bChecked,
|
|
[in] LPCWSTR pszLabel);
|
|
HRESULT SetFieldBitmap([in] ICredentialProviderCredential* pcpc,
|
|
[in] DWORD dwFieldID,
|
|
[in] HBITMAP hbmp);
|
|
|
|
HRESULT SetFieldComboBoxSelectedItem([in] ICredentialProviderCredential* pcpc,
|
|
[in] DWORD dwFieldID,
|
|
[in] DWORD dwSelectedItem);
|
|
HRESULT DeleteFieldComboBoxItem([in] ICredentialProviderCredential* pcpc,
|
|
[in] DWORD dwFieldID,
|
|
[in] DWORD dwItem);
|
|
HRESULT AppendFieldComboBoxItem([in] ICredentialProviderCredential* pcpc,
|
|
[in] DWORD dwFieldID,
|
|
[in, string] LPCWSTR pszItem);
|
|
|
|
HRESULT SetFieldSubmitButton([in] ICredentialProviderCredential* pcpc,
|
|
[in] DWORD dwFieldID,
|
|
[in] DWORD dwAdjacentTo);
|
|
HRESULT OnCreatingWindow([out] HWND* phwndOwner);
|
|
};
|
|
|
|
interface ICredentialProviderEvents; // forward
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(ref),
|
|
uuid(d27c3481-5a1c-45b2-8aaa-c20ebbe8229e),
|
|
]
|
|
interface ICredentialProvider : IUnknown
|
|
{
|
|
HRESULT SetUsageScenario([in] CREDENTIAL_PROVIDER_USAGE_SCENARIO cpus,
|
|
[in] DWORD dwFlags);
|
|
HRESULT SetSerialization([in] const CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION* pcpcs);
|
|
|
|
HRESULT Advise([in] ICredentialProviderEvents* pcpe, [in] UINT_PTR upAdviseContext);
|
|
HRESULT UnAdvise();
|
|
|
|
HRESULT GetFieldDescriptorCount([out] DWORD* pdwCount);
|
|
HRESULT GetFieldDescriptorAt([in] DWORD dwIndex,
|
|
[out] CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR** ppcpfd);
|
|
|
|
HRESULT GetCredentialCount([out] DWORD* pdwCount,
|
|
[out] DWORD* pdwDefault,
|
|
[out] BOOL* pbAutoLogonWithDefault);
|
|
HRESULT GetCredentialAt([in] DWORD dwIndex,
|
|
[out] ICredentialProviderCredential** ppcpc);
|
|
};
|
|
|
|
[
|
|
object,
|
|
pointer_default(ref),
|
|
uuid(34201e5a-a787-41a3-a5a4-bd6dcf2a854e),
|
|
]
|
|
interface ICredentialProviderEvents : IUnknown
|
|
{
|
|
HRESULT CredentialsChanged([in] UINT_PTR upAdviseContext);
|
|
};
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(ref),
|
|
uuid(a5da53f9-d475-4080-a120-910c4a739880),
|
|
]
|
|
interface ICredentialProviderFilter : IUnknown
|
|
{
|
|
HRESULT Filter([in] CREDENTIAL_PROVIDER_USAGE_SCENARIO cpus,
|
|
[in] DWORD dwFlags,
|
|
[in, size_is(cProviders)] GUID* rgclsidProviders,
|
|
[in, out, size_is(cProviders)] BOOL* rgbAllow,
|
|
[in] DWORD cProviders);
|
|
HRESULT UpdateRemoteCredential([in] const CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION* pcpcsIn,
|
|
[out] CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION* pcpcsOut);
|
|
};
|
|
|
|
//
|
|
// This typelib contains the CLSIDs of Microsoft's ICredentialProvider implementations.
|
|
//
|
|
[
|
|
uuid(d545db01-e522-4a63-af83-d8ddf954004f), // LIBID_CredentialProviders
|
|
]
|
|
library CredentialProviders
|
|
{
|
|
// CLSID_PasswordCredentialProvider
|
|
[ uuid(6f45dc1e-5384-457a-bc13-2cd81b0d28ed) ] coclass PasswordCredentialProvider { interface ICredentialProvider; }
|
|
|
|
// CLSID_NPCredentialProvider
|
|
[ uuid(3dd6bec0-8193-4ffe-ae25-e08e39ea4063) ] coclass NPCredentialProvider { interface ICredentialProvider; }
|
|
|
|
// CLSID_SmartcardCredentialProvider
|
|
[ uuid(8bf9a910-a8ff-457f-999f-a5ca10b4a885) ] coclass SmartcardCredentialProvider { interface ICredentialProvider; }
|
|
|
|
// CLSID_SmartcardPinProvider
|
|
[ uuid(94596c7e-3744-41ce-893e-bbf09122f76a) ] coclass SmartcardPinProvider { interface ICredentialProvider; }
|
|
|
|
// CLSID_GenericCredentialProvider
|
|
[ uuid(25CBB996-92ED-457e-B28C-4774084BD562) ] coclass GenericCredentialProvider { interface ICredentialProvider; }
|
|
|
|
// CLSID_RASProvider
|
|
[ uuid(5537E283-B1E7-4EF8-9C6E-7AB0AFE5056D) ] coclass RASProvider { interface ICredentialProvider; }
|
|
|
|
// CLSID_OnexCredentialProvider
|
|
[ uuid(07AA0886-CC8D-4e19-A410-1C75AF686E62) ] coclass OnexCredentialProvider { interface ICredentialProvider; }
|
|
|
|
// CLSID_OnexPlapSmartcardCredentialProvider
|
|
[ uuid(33c86cd6-705f-4ba1-9adb-67070b837775) ] coclass OnexPlapSmartcardCredentialProvider { interface ICredentialProvider; }
|
|
|
|
// CLSID_VaultProvider
|
|
[ uuid(503739d0-4c5e-4cfd-b3ba-d881334f0df2) ] coclass VaultProvider { interface ICredentialProvider; }
|
|
|
|
// CLSID_WinBioCredentialProvider
|
|
[ uuid(AC3AC249-E820-4343-A65B-377AC634DC09) ] coclass WinBioCredentialProvider { interface ICredentialProvider; }
|
|
};
|
|
|