From 5aea9f491947ffb42844dca1ca3ba8e091d24dbe Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath <[email protected]> Date: Thu, 4 Aug 2022 08:27:17 +0530 Subject: [PATCH] headers: Add credentialprovider.idl
Required for openvpn-gui project Signed-off-by: Biswapriyo Nath <[email protected]> --- mingw-w64-crt/libsrc/uuid.c | 1 + mingw-w64-headers/Makefile.am | 1 + .../include/credentialprovider.idl | 406 ++++++++++++++++++ 3 files changed, 408 insertions(+) create mode 100644 mingw-w64-headers/include/credentialprovider.idl diff --git a/mingw-w64-crt/libsrc/uuid.c b/mingw-w64-crt/libsrc/uuid.c index 8dfcb08..cd86228 100644 --- a/mingw-w64-crt/libsrc/uuid.c +++ b/mingw-w64-crt/libsrc/uuid.c @@ -14,6 +14,7 @@ #define INITGUID #include <basetyps.h> +#include <credentialprovider.h> #include <textstor.h> #include <shobjidl.h> #include <propkey.h> diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am index 96a8f47..8b25bfc 100644 --- a/mingw-w64-headers/Makefile.am +++ b/mingw-w64-headers/Makefile.am @@ -90,6 +90,7 @@ IDL_SRCS = \ include/comadmin.idl \ include/commoncontrols.idl \ include/control.idl \ + include/credentialprovider.idl \ include/ctfutb.idl \ include/d3d10.idl \ include/d3d10_1.idl \ diff --git a/mingw-w64-headers/include/credentialprovider.idl b/mingw-w64-headers/include/credentialprovider.idl new file mode 100644 index 0000000..3019c08 --- /dev/null +++ b/mingw-w64-headers/include/credentialprovider.idl @@ -0,0 +1,406 @@ +/** + * 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) */") -- 2.37.1
_______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
