| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the mingw-w64 runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| |
| cpp_quote("#include <winapifamily.h>") |
| |
| cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") |
| |
| import "wtypes.idl"; |
| import "shobjidl.idl"; |
| import "propsys.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; |
| |
| 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, |
| CPGSR_RETURN_NO_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; |
| |
| cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN8)") |
| [v1_enum] typedef enum CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS { |
| CPAO_NONE = 0x00000000, |
| CPAO_EMPTY_LOCAL = 0x00000001, |
| CPAO_EMPTY_CONNECTED = 0x00000002, |
| } CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS; |
| cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS)") |
| |
| [v1_enum] typedef enum CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS { |
| CPCFO_NONE = 0x00000000, |
| CPCFO_ENABLE_PASSWORD_REVEAL = 0x00000001, |
| CPCFO_IS_EMAIL_ADDRESS = 0x00000002, |
| CPCFO_ENABLE_TOUCH_KEYBOARD_AUTO_INVOKE = 0x00000004, |
| CPCFO_NUMBERS_ONLY = 0x00000008, |
| CPCFO_SHOW_ENGLISH_KEYBOARD = 0x00000010, |
| } CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS; |
| cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS)") |
| cpp_quote("#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */") |
| |
| cpp_quote("#ifdef __WIDL__") |
| typedef LONG NTSTATUS; |
| cpp_quote("#else") |
| cpp_quote("#ifndef NTSTATUS") |
| cpp_quote("typedef LONG NTSTATUS;") |
| cpp_quote("#endif") |
| cpp_quote("#endif") |
| |
| cpp_quote("#define CREDENTIAL_PROVIDER_NO_DEFAULT ((DWORD)-1)") |
| |
| interface ICredentialProviderCredentialEvents; |
| |
| [ |
| local, |
| object, |
| pointer_default(ref), |
| uuid(63913a93-40c1-481a-818d-4072ff8c70cc), |
| ] |
| interface ICredentialProviderCredential : IUnknown |
| { |
| HRESULT Advise([in] ICredentialProviderCredentialEvents* pcpce); |
| HRESULT UnAdvise(); |
| |
| HRESULT SetSelected([out] WINBOOL* 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] WINBOOL* 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] WINBOOL 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(); |
| } |
| |
| [ |
| 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] WINBOOL 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; |
| |
| [ |
| 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] WINBOOL* 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)] WINBOOL* rgbAllow, |
| [in] DWORD cProviders); |
| HRESULT UpdateRemoteCredential([in] const CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION* pcpcsIn, |
| [out] CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION* pcpcsOut); |
| } |
| |
| cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN8)") |
| [ |
| local, |
| object, |
| pointer_default(ref), |
| uuid(fd672c54-40ea-4d6e-9b49-cfb1a7507bd7), |
| ] |
| interface ICredentialProviderCredential2 : ICredentialProviderCredential |
| { |
| HRESULT GetUserSid([out, string] LPWSTR *sid); |
| } |
| |
| [ |
| local, |
| object, |
| pointer_default(ref), |
| uuid(dbc6fb30-c843-49e3-a645-573e6f39446a), |
| ] |
| interface ICredentialProviderCredentialWithFieldOptions : IUnknown |
| { |
| HRESULT GetFieldOptions([in] DWORD fieldID, |
| [out] CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS *options); |
| } |
| |
| [ |
| object, |
| pointer_default(ref), |
| uuid(b53c00b6-9922-4b78-b1f4-ddfe774dc39b), |
| ] |
| interface ICredentialProviderCredentialEvents2 : ICredentialProviderCredentialEvents |
| { |
| HRESULT BeginFieldUpdates(); |
| HRESULT EndFieldUpdates(); |
| HRESULT SetFieldOptions([in] ICredentialProviderCredential *credential, |
| [in] DWORD fieldID, |
| [in] CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS options); |
| } |
| |
| [ |
| local, |
| uuid(13793285-3ea6-40fd-b420-15f47da41fbb), |
| object, |
| pointer_default(ref), |
| ] |
| interface ICredentialProviderUser : IUnknown |
| { |
| HRESULT GetSid([out, string] LPWSTR *sid); |
| HRESULT GetProviderID([out] GUID *providerID); |
| HRESULT GetStringValue([in] REFPROPERTYKEY key, [out, string] LPWSTR *stringValue); |
| HRESULT GetValue([in] REFPROPERTYKEY key, [out] PROPVARIANT *value); |
| } |
| |
| cpp_quote("DEFINE_GUID(Identity_LocalUserProvider, 0xA198529B, 0x730F, 0x4089, 0xB6, 0x46, 0xA1, 0x25, 0x57, 0xF5, 0x66, 0x5E);") |
| |
| [ |
| local, |
| uuid(90c119ae-0f18-4520-a1f1-114366a40fe8), |
| object, |
| pointer_default(ref), |
| ] |
| interface ICredentialProviderUserArray : IUnknown |
| { |
| HRESULT SetProviderFilter([in] REFGUID guidProviderToFilterTo); |
| HRESULT GetAccountOptions([out] CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS *credentialProviderAccountOptions); |
| HRESULT GetCount([out] DWORD *userCount); |
| HRESULT GetAt([in] DWORD userIndex, [out] ICredentialProviderUser **user); |
| } |
| |
| [ |
| local, |
| uuid(095c1484-1c0c-4388-9c6d-500e61bf84bd), |
| object, |
| pointer_default(ref), |
| ] |
| interface ICredentialProviderSetUserArray : IUnknown |
| { |
| HRESULT SetUserArray([in] ICredentialProviderUserArray *users); |
| } |
| |
| cpp_quote("#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */") |
| |
| [ |
| uuid(d545db01-e522-4a63-af83-d8ddf954004f), |
| ] |
| library CredentialProviders |
| { |
| [uuid(60b78e88-ead8-445c-9cfd-0b87f74ea6cd)] |
| coclass PasswordCredentialProvider { interface ICredentialProvider; } |
| |
| [uuid(6f45dc1e-5384-457a-bc13-2cd81b0d28ed)] |
| coclass V1PasswordCredentialProvider { interface ICredentialProvider; } |
| |
| [uuid(cb82ea12-9f71-446d-89e1-8d0924e1256e)] |
| coclass PINLogonCredentialProvider { interface ICredentialProvider; } |
| |
| [uuid(3dd6bec0-8193-4ffe-ae25-e08e39ea4063)] |
| coclass NPCredentialProvider { interface ICredentialProvider; } |
| |
| [uuid(8fd7e19c-3bf7-489b-a72c-846ab3678c96)] |
| coclass SmartcardCredentialProvider { interface ICredentialProvider; } |
| |
| [uuid(8bf9a910-a8ff-457f-999f-a5ca10b4a885)] |
| coclass V1SmartcardCredentialProvider { interface ICredentialProvider; } |
| |
| [uuid(94596c7e-3744-41ce-893e-bbf09122f76a)] |
| coclass SmartcardPinProvider { interface ICredentialProvider; } |
| |
| [uuid(1b283861-754f-4022-ad47-a5eaaa618894)] |
| coclass SmartcardReaderSelectionProvider { interface ICredentialProvider; } |
| |
| [uuid(1ee7337f-85ac-45e2-a23c-37c753209769)] |
| coclass SmartcardWinRTProvider { interface ICredentialProvider; } |
| |
| [uuid(25CBB996-92ED-457e-B28C-4774084BD562)] |
| coclass GenericCredentialProvider { interface ICredentialProvider; } |
| |
| [uuid(5537e283-b1e7-4ef8-9c6e-7ab0afe5056d)] |
| coclass RASProvider { interface ICredentialProvider; } |
| |
| [uuid(07aa0886-cc8d-4e19-a410-1c75af686e62)] |
| coclass OnexCredentialProvider { interface ICredentialProvider; } |
| |
| [uuid(33c86cd6-705f-4ba1-9adb-67070b837775)] |
| coclass OnexPlapSmartcardCredentialProvider { interface ICredentialProvider; } |
| |
| [uuid(503739d0-4c5e-4cfd-b3ba-d881334f0df2)] |
| coclass VaultProvider { interface ICredentialProvider; } |
| |
| [uuid(bec09223-b018-416d-a0ac-523971b639f5)] |
| coclass WinBioCredentialProvider { interface ICredentialProvider; } |
| |
| [uuid(ac3ac249-e820-4343-a65b-377ac634dc09)] |
| coclass V1WinBioCredentialProvider { interface ICredentialProvider; } |
| } |
| |
| cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */") |