zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

credentialprovider.h (115684B) - Raw


      1 /*** Autogenerated by WIDL 10.4 from include/credentialprovider.idl - Do not edit ***/
      2 
      3 #ifdef _WIN32
      4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      6 #endif
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 #endif
     10 
     11 #ifndef COM_NO_WINDOWS_H
     12 #include <windows.h>
     13 #include <ole2.h>
     14 #endif
     15 
     16 #ifndef __credentialprovider_h__
     17 #define __credentialprovider_h__
     18 
     19 /* Forward declarations */
     20 
     21 #ifndef __ICredentialProviderCredential_FWD_DEFINED__
     22 #define __ICredentialProviderCredential_FWD_DEFINED__
     23 typedef interface ICredentialProviderCredential ICredentialProviderCredential;
     24 #ifdef __cplusplus
     25 interface ICredentialProviderCredential;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __IQueryContinueWithStatus_FWD_DEFINED__
     30 #define __IQueryContinueWithStatus_FWD_DEFINED__
     31 typedef interface IQueryContinueWithStatus IQueryContinueWithStatus;
     32 #ifdef __cplusplus
     33 interface IQueryContinueWithStatus;
     34 #endif /* __cplusplus */
     35 #endif
     36 
     37 #ifndef __IConnectableCredentialProviderCredential_FWD_DEFINED__
     38 #define __IConnectableCredentialProviderCredential_FWD_DEFINED__
     39 typedef interface IConnectableCredentialProviderCredential IConnectableCredentialProviderCredential;
     40 #ifdef __cplusplus
     41 interface IConnectableCredentialProviderCredential;
     42 #endif /* __cplusplus */
     43 #endif
     44 
     45 #ifndef __ICredentialProviderCredentialEvents_FWD_DEFINED__
     46 #define __ICredentialProviderCredentialEvents_FWD_DEFINED__
     47 typedef interface ICredentialProviderCredentialEvents ICredentialProviderCredentialEvents;
     48 #ifdef __cplusplus
     49 interface ICredentialProviderCredentialEvents;
     50 #endif /* __cplusplus */
     51 #endif
     52 
     53 #ifndef __ICredentialProvider_FWD_DEFINED__
     54 #define __ICredentialProvider_FWD_DEFINED__
     55 typedef interface ICredentialProvider ICredentialProvider;
     56 #ifdef __cplusplus
     57 interface ICredentialProvider;
     58 #endif /* __cplusplus */
     59 #endif
     60 
     61 #ifndef __ICredentialProviderEvents_FWD_DEFINED__
     62 #define __ICredentialProviderEvents_FWD_DEFINED__
     63 typedef interface ICredentialProviderEvents ICredentialProviderEvents;
     64 #ifdef __cplusplus
     65 interface ICredentialProviderEvents;
     66 #endif /* __cplusplus */
     67 #endif
     68 
     69 #ifndef __ICredentialProviderFilter_FWD_DEFINED__
     70 #define __ICredentialProviderFilter_FWD_DEFINED__
     71 typedef interface ICredentialProviderFilter ICredentialProviderFilter;
     72 #ifdef __cplusplus
     73 interface ICredentialProviderFilter;
     74 #endif /* __cplusplus */
     75 #endif
     76 
     77 #ifndef __ICredentialProviderCredential2_FWD_DEFINED__
     78 #define __ICredentialProviderCredential2_FWD_DEFINED__
     79 typedef interface ICredentialProviderCredential2 ICredentialProviderCredential2;
     80 #ifdef __cplusplus
     81 interface ICredentialProviderCredential2;
     82 #endif /* __cplusplus */
     83 #endif
     84 
     85 #ifndef __ICredentialProviderCredentialWithFieldOptions_FWD_DEFINED__
     86 #define __ICredentialProviderCredentialWithFieldOptions_FWD_DEFINED__
     87 typedef interface ICredentialProviderCredentialWithFieldOptions ICredentialProviderCredentialWithFieldOptions;
     88 #ifdef __cplusplus
     89 interface ICredentialProviderCredentialWithFieldOptions;
     90 #endif /* __cplusplus */
     91 #endif
     92 
     93 #ifndef __ICredentialProviderCredentialEvents2_FWD_DEFINED__
     94 #define __ICredentialProviderCredentialEvents2_FWD_DEFINED__
     95 typedef interface ICredentialProviderCredentialEvents2 ICredentialProviderCredentialEvents2;
     96 #ifdef __cplusplus
     97 interface ICredentialProviderCredentialEvents2;
     98 #endif /* __cplusplus */
     99 #endif
    100 
    101 #ifndef __ICredentialProviderUser_FWD_DEFINED__
    102 #define __ICredentialProviderUser_FWD_DEFINED__
    103 typedef interface ICredentialProviderUser ICredentialProviderUser;
    104 #ifdef __cplusplus
    105 interface ICredentialProviderUser;
    106 #endif /* __cplusplus */
    107 #endif
    108 
    109 #ifndef __ICredentialProviderUserArray_FWD_DEFINED__
    110 #define __ICredentialProviderUserArray_FWD_DEFINED__
    111 typedef interface ICredentialProviderUserArray ICredentialProviderUserArray;
    112 #ifdef __cplusplus
    113 interface ICredentialProviderUserArray;
    114 #endif /* __cplusplus */
    115 #endif
    116 
    117 #ifndef __ICredentialProviderSetUserArray_FWD_DEFINED__
    118 #define __ICredentialProviderSetUserArray_FWD_DEFINED__
    119 typedef interface ICredentialProviderSetUserArray ICredentialProviderSetUserArray;
    120 #ifdef __cplusplus
    121 interface ICredentialProviderSetUserArray;
    122 #endif /* __cplusplus */
    123 #endif
    124 
    125 #ifndef __PasswordCredentialProvider_FWD_DEFINED__
    126 #define __PasswordCredentialProvider_FWD_DEFINED__
    127 #ifdef __cplusplus
    128 typedef class PasswordCredentialProvider PasswordCredentialProvider;
    129 #else
    130 typedef struct PasswordCredentialProvider PasswordCredentialProvider;
    131 #endif /* defined __cplusplus */
    132 #endif /* defined __PasswordCredentialProvider_FWD_DEFINED__ */
    133 
    134 #ifndef __V1PasswordCredentialProvider_FWD_DEFINED__
    135 #define __V1PasswordCredentialProvider_FWD_DEFINED__
    136 #ifdef __cplusplus
    137 typedef class V1PasswordCredentialProvider V1PasswordCredentialProvider;
    138 #else
    139 typedef struct V1PasswordCredentialProvider V1PasswordCredentialProvider;
    140 #endif /* defined __cplusplus */
    141 #endif /* defined __V1PasswordCredentialProvider_FWD_DEFINED__ */
    142 
    143 #ifndef __PINLogonCredentialProvider_FWD_DEFINED__
    144 #define __PINLogonCredentialProvider_FWD_DEFINED__
    145 #ifdef __cplusplus
    146 typedef class PINLogonCredentialProvider PINLogonCredentialProvider;
    147 #else
    148 typedef struct PINLogonCredentialProvider PINLogonCredentialProvider;
    149 #endif /* defined __cplusplus */
    150 #endif /* defined __PINLogonCredentialProvider_FWD_DEFINED__ */
    151 
    152 #ifndef __NPCredentialProvider_FWD_DEFINED__
    153 #define __NPCredentialProvider_FWD_DEFINED__
    154 #ifdef __cplusplus
    155 typedef class NPCredentialProvider NPCredentialProvider;
    156 #else
    157 typedef struct NPCredentialProvider NPCredentialProvider;
    158 #endif /* defined __cplusplus */
    159 #endif /* defined __NPCredentialProvider_FWD_DEFINED__ */
    160 
    161 #ifndef __SmartcardCredentialProvider_FWD_DEFINED__
    162 #define __SmartcardCredentialProvider_FWD_DEFINED__
    163 #ifdef __cplusplus
    164 typedef class SmartcardCredentialProvider SmartcardCredentialProvider;
    165 #else
    166 typedef struct SmartcardCredentialProvider SmartcardCredentialProvider;
    167 #endif /* defined __cplusplus */
    168 #endif /* defined __SmartcardCredentialProvider_FWD_DEFINED__ */
    169 
    170 #ifndef __V1SmartcardCredentialProvider_FWD_DEFINED__
    171 #define __V1SmartcardCredentialProvider_FWD_DEFINED__
    172 #ifdef __cplusplus
    173 typedef class V1SmartcardCredentialProvider V1SmartcardCredentialProvider;
    174 #else
    175 typedef struct V1SmartcardCredentialProvider V1SmartcardCredentialProvider;
    176 #endif /* defined __cplusplus */
    177 #endif /* defined __V1SmartcardCredentialProvider_FWD_DEFINED__ */
    178 
    179 #ifndef __SmartcardPinProvider_FWD_DEFINED__
    180 #define __SmartcardPinProvider_FWD_DEFINED__
    181 #ifdef __cplusplus
    182 typedef class SmartcardPinProvider SmartcardPinProvider;
    183 #else
    184 typedef struct SmartcardPinProvider SmartcardPinProvider;
    185 #endif /* defined __cplusplus */
    186 #endif /* defined __SmartcardPinProvider_FWD_DEFINED__ */
    187 
    188 #ifndef __SmartcardReaderSelectionProvider_FWD_DEFINED__
    189 #define __SmartcardReaderSelectionProvider_FWD_DEFINED__
    190 #ifdef __cplusplus
    191 typedef class SmartcardReaderSelectionProvider SmartcardReaderSelectionProvider;
    192 #else
    193 typedef struct SmartcardReaderSelectionProvider SmartcardReaderSelectionProvider;
    194 #endif /* defined __cplusplus */
    195 #endif /* defined __SmartcardReaderSelectionProvider_FWD_DEFINED__ */
    196 
    197 #ifndef __SmartcardWinRTProvider_FWD_DEFINED__
    198 #define __SmartcardWinRTProvider_FWD_DEFINED__
    199 #ifdef __cplusplus
    200 typedef class SmartcardWinRTProvider SmartcardWinRTProvider;
    201 #else
    202 typedef struct SmartcardWinRTProvider SmartcardWinRTProvider;
    203 #endif /* defined __cplusplus */
    204 #endif /* defined __SmartcardWinRTProvider_FWD_DEFINED__ */
    205 
    206 #ifndef __GenericCredentialProvider_FWD_DEFINED__
    207 #define __GenericCredentialProvider_FWD_DEFINED__
    208 #ifdef __cplusplus
    209 typedef class GenericCredentialProvider GenericCredentialProvider;
    210 #else
    211 typedef struct GenericCredentialProvider GenericCredentialProvider;
    212 #endif /* defined __cplusplus */
    213 #endif /* defined __GenericCredentialProvider_FWD_DEFINED__ */
    214 
    215 #ifndef __RASProvider_FWD_DEFINED__
    216 #define __RASProvider_FWD_DEFINED__
    217 #ifdef __cplusplus
    218 typedef class RASProvider RASProvider;
    219 #else
    220 typedef struct RASProvider RASProvider;
    221 #endif /* defined __cplusplus */
    222 #endif /* defined __RASProvider_FWD_DEFINED__ */
    223 
    224 #ifndef __OnexCredentialProvider_FWD_DEFINED__
    225 #define __OnexCredentialProvider_FWD_DEFINED__
    226 #ifdef __cplusplus
    227 typedef class OnexCredentialProvider OnexCredentialProvider;
    228 #else
    229 typedef struct OnexCredentialProvider OnexCredentialProvider;
    230 #endif /* defined __cplusplus */
    231 #endif /* defined __OnexCredentialProvider_FWD_DEFINED__ */
    232 
    233 #ifndef __OnexPlapSmartcardCredentialProvider_FWD_DEFINED__
    234 #define __OnexPlapSmartcardCredentialProvider_FWD_DEFINED__
    235 #ifdef __cplusplus
    236 typedef class OnexPlapSmartcardCredentialProvider OnexPlapSmartcardCredentialProvider;
    237 #else
    238 typedef struct OnexPlapSmartcardCredentialProvider OnexPlapSmartcardCredentialProvider;
    239 #endif /* defined __cplusplus */
    240 #endif /* defined __OnexPlapSmartcardCredentialProvider_FWD_DEFINED__ */
    241 
    242 #ifndef __VaultProvider_FWD_DEFINED__
    243 #define __VaultProvider_FWD_DEFINED__
    244 #ifdef __cplusplus
    245 typedef class VaultProvider VaultProvider;
    246 #else
    247 typedef struct VaultProvider VaultProvider;
    248 #endif /* defined __cplusplus */
    249 #endif /* defined __VaultProvider_FWD_DEFINED__ */
    250 
    251 #ifndef __WinBioCredentialProvider_FWD_DEFINED__
    252 #define __WinBioCredentialProvider_FWD_DEFINED__
    253 #ifdef __cplusplus
    254 typedef class WinBioCredentialProvider WinBioCredentialProvider;
    255 #else
    256 typedef struct WinBioCredentialProvider WinBioCredentialProvider;
    257 #endif /* defined __cplusplus */
    258 #endif /* defined __WinBioCredentialProvider_FWD_DEFINED__ */
    259 
    260 #ifndef __V1WinBioCredentialProvider_FWD_DEFINED__
    261 #define __V1WinBioCredentialProvider_FWD_DEFINED__
    262 #ifdef __cplusplus
    263 typedef class V1WinBioCredentialProvider V1WinBioCredentialProvider;
    264 #else
    265 typedef struct V1WinBioCredentialProvider V1WinBioCredentialProvider;
    266 #endif /* defined __cplusplus */
    267 #endif /* defined __V1WinBioCredentialProvider_FWD_DEFINED__ */
    268 
    269 /* Headers for imported files */
    270 
    271 #include <wtypes.h>
    272 #include <shobjidl.h>
    273 #include <propsys.h>
    274 #include <unknwn.h>
    275 
    276 #ifdef __cplusplus
    277 extern "C" {
    278 #endif
    279 
    280 #include <winapifamily.h>
    281 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
    282 typedef enum _CREDENTIAL_PROVIDER_USAGE_SCENARIO {
    283     CPUS_INVALID = 0,
    284     CPUS_LOGON = 1,
    285     CPUS_UNLOCK_WORKSTATION = 2,
    286     CPUS_CHANGE_PASSWORD = 3,
    287     CPUS_CREDUI = 4,
    288     CPUS_PLAP = 5
    289 } CREDENTIAL_PROVIDER_USAGE_SCENARIO;
    290 typedef enum _CREDENTIAL_PROVIDER_FIELD_TYPE {
    291     CPFT_INVALID = 0,
    292     CPFT_LARGE_TEXT = 1,
    293     CPFT_SMALL_TEXT = 2,
    294     CPFT_COMMAND_LINK = 3,
    295     CPFT_EDIT_TEXT = 4,
    296     CPFT_PASSWORD_TEXT = 5,
    297     CPFT_TILE_IMAGE = 6,
    298     CPFT_CHECKBOX = 7,
    299     CPFT_COMBOBOX = 8,
    300     CPFT_SUBMIT_BUTTON = 9
    301 } CREDENTIAL_PROVIDER_FIELD_TYPE;
    302 typedef enum _CREDENTIAL_PROVIDER_FIELD_STATE {
    303     CPFS_HIDDEN = 0,
    304     CPFS_DISPLAY_IN_SELECTED_TILE = 1,
    305     CPFS_DISPLAY_IN_DESELECTED_TILE = 2,
    306     CPFS_DISPLAY_IN_BOTH = 3
    307 } CREDENTIAL_PROVIDER_FIELD_STATE;
    308 typedef enum _CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE {
    309     CPFIS_NONE = 0,
    310     CPFIS_READONLY = 1,
    311     CPFIS_DISABLED = 2,
    312     CPFIS_FOCUSED = 3
    313 } CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE;
    314 typedef struct _CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR {
    315     DWORD dwFieldID;
    316     CREDENTIAL_PROVIDER_FIELD_TYPE cpft;
    317     LPWSTR pszLabel;
    318     GUID guidFieldType;
    319 } CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR;
    320 typedef enum _CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE {
    321     CPGSR_NO_CREDENTIAL_NOT_FINISHED = 0,
    322     CPGSR_NO_CREDENTIAL_FINISHED = 1,
    323     CPGSR_RETURN_CREDENTIAL_FINISHED = 2,
    324     CPGSR_RETURN_NO_CREDENTIAL_FINISHED = 3
    325 } CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE;
    326 typedef enum _CREDENTIAL_PROVIDER_STATUS_ICON {
    327     CPSI_NONE = 0,
    328     CPSI_ERROR = 1,
    329     CPSI_WARNING = 2,
    330     CPSI_SUCCESS = 3
    331 } CREDENTIAL_PROVIDER_STATUS_ICON;
    332 typedef struct _CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION {
    333     ULONG ulAuthenticationPackage;
    334     GUID clsidCredentialProvider;
    335     ULONG cbSerialization;
    336     byte *rgbSerialization;
    337 } CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION;
    338 #if (NTDDI_VERSION >= NTDDI_WIN8)
    339 typedef enum CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS {
    340     CPAO_NONE = 0x0,
    341     CPAO_EMPTY_LOCAL = 0x1,
    342     CPAO_EMPTY_CONNECTED = 0x2
    343 } CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS;
    344 DEFINE_ENUM_FLAG_OPERATORS(CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS)
    345 typedef enum CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS {
    346     CPCFO_NONE = 0x0,
    347     CPCFO_ENABLE_PASSWORD_REVEAL = 0x1,
    348     CPCFO_IS_EMAIL_ADDRESS = 0x2,
    349     CPCFO_ENABLE_TOUCH_KEYBOARD_AUTO_INVOKE = 0x4,
    350     CPCFO_NUMBERS_ONLY = 0x8,
    351     CPCFO_SHOW_ENGLISH_KEYBOARD = 0x10
    352 } CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS;
    353 DEFINE_ENUM_FLAG_OPERATORS(CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS)
    354 #endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
    355 #ifdef __WIDL__
    356 typedef LONG NTSTATUS;
    357 #else
    358 #ifndef NTSTATUS
    359 typedef LONG NTSTATUS;
    360 #endif
    361 #endif
    362 #define CREDENTIAL_PROVIDER_NO_DEFAULT ((DWORD)-1)
    363 #ifndef __ICredentialProviderCredentialEvents_FWD_DEFINED__
    364 #define __ICredentialProviderCredentialEvents_FWD_DEFINED__
    365 typedef interface ICredentialProviderCredentialEvents ICredentialProviderCredentialEvents;
    366 #ifdef __cplusplus
    367 interface ICredentialProviderCredentialEvents;
    368 #endif /* __cplusplus */
    369 #endif
    370 
    371 /*****************************************************************************
    372  * ICredentialProviderCredential interface
    373  */
    374 #ifndef __ICredentialProviderCredential_INTERFACE_DEFINED__
    375 #define __ICredentialProviderCredential_INTERFACE_DEFINED__
    376 
    377 DEFINE_GUID(IID_ICredentialProviderCredential, 0x63913a93, 0x40c1, 0x481a, 0x81,0x8d, 0x40,0x72,0xff,0x8c,0x70,0xcc);
    378 #if defined(__cplusplus) && !defined(CINTERFACE)
    379 MIDL_INTERFACE("63913a93-40c1-481a-818d-4072ff8c70cc")
    380 ICredentialProviderCredential : public IUnknown
    381 {
    382     virtual HRESULT STDMETHODCALLTYPE Advise(
    383         ICredentialProviderCredentialEvents *pcpce) = 0;
    384 
    385     virtual HRESULT STDMETHODCALLTYPE UnAdvise(
    386         ) = 0;
    387 
    388     virtual HRESULT STDMETHODCALLTYPE SetSelected(
    389         WINBOOL *pbAutoLogon) = 0;
    390 
    391     virtual HRESULT STDMETHODCALLTYPE SetDeselected(
    392         ) = 0;
    393 
    394     virtual HRESULT STDMETHODCALLTYPE GetFieldState(
    395         DWORD dwFieldID,
    396         CREDENTIAL_PROVIDER_FIELD_STATE *pcpfs,
    397         CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE *pcpfis) = 0;
    398 
    399     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
    400         DWORD dwFieldID,
    401         LPWSTR *ppsz) = 0;
    402 
    403     virtual HRESULT STDMETHODCALLTYPE GetBitmapValue(
    404         DWORD dwFieldID,
    405         HBITMAP *phbmp) = 0;
    406 
    407     virtual HRESULT STDMETHODCALLTYPE GetCheckboxValue(
    408         DWORD dwFieldID,
    409         WINBOOL *pbChecked,
    410         LPWSTR *ppszLabel) = 0;
    411 
    412     virtual HRESULT STDMETHODCALLTYPE GetSubmitButtonValue(
    413         DWORD dwFieldID,
    414         DWORD *pdwAdjacentTo) = 0;
    415 
    416     virtual HRESULT STDMETHODCALLTYPE GetComboBoxValueCount(
    417         DWORD dwFieldID,
    418         DWORD *pcItems,
    419         DWORD *pdwSelectedItem) = 0;
    420 
    421     virtual HRESULT STDMETHODCALLTYPE GetComboBoxValueAt(
    422         DWORD dwFieldID,
    423         DWORD dwItem,
    424         LPWSTR *ppszItem) = 0;
    425 
    426     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
    427         DWORD dwFieldID,
    428         LPCWSTR psz) = 0;
    429 
    430     virtual HRESULT STDMETHODCALLTYPE SetCheckboxValue(
    431         DWORD dwFieldID,
    432         WINBOOL bChecked) = 0;
    433 
    434     virtual HRESULT STDMETHODCALLTYPE SetComboBoxSelectedValue(
    435         DWORD dwFieldID,
    436         DWORD dwSelectedItem) = 0;
    437 
    438     virtual HRESULT STDMETHODCALLTYPE CommandLinkClicked(
    439         DWORD dwFieldID) = 0;
    440 
    441     virtual HRESULT STDMETHODCALLTYPE GetSerialization(
    442         CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE *pcpgsr,
    443         CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION *pcpcs,
    444         LPWSTR *ppszOptionalStatusText,
    445         CREDENTIAL_PROVIDER_STATUS_ICON *pcpsiOptionalStatusIcon) = 0;
    446 
    447     virtual HRESULT STDMETHODCALLTYPE ReportResult(
    448         NTSTATUS ntsStatus,
    449         NTSTATUS ntsSubstatus,
    450         LPWSTR *ppszOptionalStatusText,
    451         CREDENTIAL_PROVIDER_STATUS_ICON *pcpsiOptionalStatusIcon) = 0;
    452 
    453 };
    454 #ifdef __CRT_UUID_DECL
    455 __CRT_UUID_DECL(ICredentialProviderCredential, 0x63913a93, 0x40c1, 0x481a, 0x81,0x8d, 0x40,0x72,0xff,0x8c,0x70,0xcc)
    456 #endif
    457 #else
    458 typedef struct ICredentialProviderCredentialVtbl {
    459     BEGIN_INTERFACE
    460 
    461     /*** IUnknown methods ***/
    462     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    463         ICredentialProviderCredential *This,
    464         REFIID riid,
    465         void **ppvObject);
    466 
    467     ULONG (STDMETHODCALLTYPE *AddRef)(
    468         ICredentialProviderCredential *This);
    469 
    470     ULONG (STDMETHODCALLTYPE *Release)(
    471         ICredentialProviderCredential *This);
    472 
    473     /*** ICredentialProviderCredential methods ***/
    474     HRESULT (STDMETHODCALLTYPE *Advise)(
    475         ICredentialProviderCredential *This,
    476         ICredentialProviderCredentialEvents *pcpce);
    477 
    478     HRESULT (STDMETHODCALLTYPE *UnAdvise)(
    479         ICredentialProviderCredential *This);
    480 
    481     HRESULT (STDMETHODCALLTYPE *SetSelected)(
    482         ICredentialProviderCredential *This,
    483         WINBOOL *pbAutoLogon);
    484 
    485     HRESULT (STDMETHODCALLTYPE *SetDeselected)(
    486         ICredentialProviderCredential *This);
    487 
    488     HRESULT (STDMETHODCALLTYPE *GetFieldState)(
    489         ICredentialProviderCredential *This,
    490         DWORD dwFieldID,
    491         CREDENTIAL_PROVIDER_FIELD_STATE *pcpfs,
    492         CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE *pcpfis);
    493 
    494     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
    495         ICredentialProviderCredential *This,
    496         DWORD dwFieldID,
    497         LPWSTR *ppsz);
    498 
    499     HRESULT (STDMETHODCALLTYPE *GetBitmapValue)(
    500         ICredentialProviderCredential *This,
    501         DWORD dwFieldID,
    502         HBITMAP *phbmp);
    503 
    504     HRESULT (STDMETHODCALLTYPE *GetCheckboxValue)(
    505         ICredentialProviderCredential *This,
    506         DWORD dwFieldID,
    507         WINBOOL *pbChecked,
    508         LPWSTR *ppszLabel);
    509 
    510     HRESULT (STDMETHODCALLTYPE *GetSubmitButtonValue)(
    511         ICredentialProviderCredential *This,
    512         DWORD dwFieldID,
    513         DWORD *pdwAdjacentTo);
    514 
    515     HRESULT (STDMETHODCALLTYPE *GetComboBoxValueCount)(
    516         ICredentialProviderCredential *This,
    517         DWORD dwFieldID,
    518         DWORD *pcItems,
    519         DWORD *pdwSelectedItem);
    520 
    521     HRESULT (STDMETHODCALLTYPE *GetComboBoxValueAt)(
    522         ICredentialProviderCredential *This,
    523         DWORD dwFieldID,
    524         DWORD dwItem,
    525         LPWSTR *ppszItem);
    526 
    527     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
    528         ICredentialProviderCredential *This,
    529         DWORD dwFieldID,
    530         LPCWSTR psz);
    531 
    532     HRESULT (STDMETHODCALLTYPE *SetCheckboxValue)(
    533         ICredentialProviderCredential *This,
    534         DWORD dwFieldID,
    535         WINBOOL bChecked);
    536 
    537     HRESULT (STDMETHODCALLTYPE *SetComboBoxSelectedValue)(
    538         ICredentialProviderCredential *This,
    539         DWORD dwFieldID,
    540         DWORD dwSelectedItem);
    541 
    542     HRESULT (STDMETHODCALLTYPE *CommandLinkClicked)(
    543         ICredentialProviderCredential *This,
    544         DWORD dwFieldID);
    545 
    546     HRESULT (STDMETHODCALLTYPE *GetSerialization)(
    547         ICredentialProviderCredential *This,
    548         CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE *pcpgsr,
    549         CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION *pcpcs,
    550         LPWSTR *ppszOptionalStatusText,
    551         CREDENTIAL_PROVIDER_STATUS_ICON *pcpsiOptionalStatusIcon);
    552 
    553     HRESULT (STDMETHODCALLTYPE *ReportResult)(
    554         ICredentialProviderCredential *This,
    555         NTSTATUS ntsStatus,
    556         NTSTATUS ntsSubstatus,
    557         LPWSTR *ppszOptionalStatusText,
    558         CREDENTIAL_PROVIDER_STATUS_ICON *pcpsiOptionalStatusIcon);
    559 
    560     END_INTERFACE
    561 } ICredentialProviderCredentialVtbl;
    562 
    563 interface ICredentialProviderCredential {
    564     CONST_VTBL ICredentialProviderCredentialVtbl* lpVtbl;
    565 };
    566 
    567 #ifdef COBJMACROS
    568 #ifndef WIDL_C_INLINE_WRAPPERS
    569 /*** IUnknown methods ***/
    570 #define ICredentialProviderCredential_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    571 #define ICredentialProviderCredential_AddRef(This) (This)->lpVtbl->AddRef(This)
    572 #define ICredentialProviderCredential_Release(This) (This)->lpVtbl->Release(This)
    573 /*** ICredentialProviderCredential methods ***/
    574 #define ICredentialProviderCredential_Advise(This,pcpce) (This)->lpVtbl->Advise(This,pcpce)
    575 #define ICredentialProviderCredential_UnAdvise(This) (This)->lpVtbl->UnAdvise(This)
    576 #define ICredentialProviderCredential_SetSelected(This,pbAutoLogon) (This)->lpVtbl->SetSelected(This,pbAutoLogon)
    577 #define ICredentialProviderCredential_SetDeselected(This) (This)->lpVtbl->SetDeselected(This)
    578 #define ICredentialProviderCredential_GetFieldState(This,dwFieldID,pcpfs,pcpfis) (This)->lpVtbl->GetFieldState(This,dwFieldID,pcpfs,pcpfis)
    579 #define ICredentialProviderCredential_GetStringValue(This,dwFieldID,ppsz) (This)->lpVtbl->GetStringValue(This,dwFieldID,ppsz)
    580 #define ICredentialProviderCredential_GetBitmapValue(This,dwFieldID,phbmp) (This)->lpVtbl->GetBitmapValue(This,dwFieldID,phbmp)
    581 #define ICredentialProviderCredential_GetCheckboxValue(This,dwFieldID,pbChecked,ppszLabel) (This)->lpVtbl->GetCheckboxValue(This,dwFieldID,pbChecked,ppszLabel)
    582 #define ICredentialProviderCredential_GetSubmitButtonValue(This,dwFieldID,pdwAdjacentTo) (This)->lpVtbl->GetSubmitButtonValue(This,dwFieldID,pdwAdjacentTo)
    583 #define ICredentialProviderCredential_GetComboBoxValueCount(This,dwFieldID,pcItems,pdwSelectedItem) (This)->lpVtbl->GetComboBoxValueCount(This,dwFieldID,pcItems,pdwSelectedItem)
    584 #define ICredentialProviderCredential_GetComboBoxValueAt(This,dwFieldID,dwItem,ppszItem) (This)->lpVtbl->GetComboBoxValueAt(This,dwFieldID,dwItem,ppszItem)
    585 #define ICredentialProviderCredential_SetStringValue(This,dwFieldID,psz) (This)->lpVtbl->SetStringValue(This,dwFieldID,psz)
    586 #define ICredentialProviderCredential_SetCheckboxValue(This,dwFieldID,bChecked) (This)->lpVtbl->SetCheckboxValue(This,dwFieldID,bChecked)
    587 #define ICredentialProviderCredential_SetComboBoxSelectedValue(This,dwFieldID,dwSelectedItem) (This)->lpVtbl->SetComboBoxSelectedValue(This,dwFieldID,dwSelectedItem)
    588 #define ICredentialProviderCredential_CommandLinkClicked(This,dwFieldID) (This)->lpVtbl->CommandLinkClicked(This,dwFieldID)
    589 #define ICredentialProviderCredential_GetSerialization(This,pcpgsr,pcpcs,ppszOptionalStatusText,pcpsiOptionalStatusIcon) (This)->lpVtbl->GetSerialization(This,pcpgsr,pcpcs,ppszOptionalStatusText,pcpsiOptionalStatusIcon)
    590 #define ICredentialProviderCredential_ReportResult(This,ntsStatus,ntsSubstatus,ppszOptionalStatusText,pcpsiOptionalStatusIcon) (This)->lpVtbl->ReportResult(This,ntsStatus,ntsSubstatus,ppszOptionalStatusText,pcpsiOptionalStatusIcon)
    591 #else
    592 /*** IUnknown methods ***/
    593 static inline HRESULT ICredentialProviderCredential_QueryInterface(ICredentialProviderCredential* This,REFIID riid,void **ppvObject) {
    594     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    595 }
    596 static inline ULONG ICredentialProviderCredential_AddRef(ICredentialProviderCredential* This) {
    597     return This->lpVtbl->AddRef(This);
    598 }
    599 static inline ULONG ICredentialProviderCredential_Release(ICredentialProviderCredential* This) {
    600     return This->lpVtbl->Release(This);
    601 }
    602 /*** ICredentialProviderCredential methods ***/
    603 static inline HRESULT ICredentialProviderCredential_Advise(ICredentialProviderCredential* This,ICredentialProviderCredentialEvents *pcpce) {
    604     return This->lpVtbl->Advise(This,pcpce);
    605 }
    606 static inline HRESULT ICredentialProviderCredential_UnAdvise(ICredentialProviderCredential* This) {
    607     return This->lpVtbl->UnAdvise(This);
    608 }
    609 static inline HRESULT ICredentialProviderCredential_SetSelected(ICredentialProviderCredential* This,WINBOOL *pbAutoLogon) {
    610     return This->lpVtbl->SetSelected(This,pbAutoLogon);
    611 }
    612 static inline HRESULT ICredentialProviderCredential_SetDeselected(ICredentialProviderCredential* This) {
    613     return This->lpVtbl->SetDeselected(This);
    614 }
    615 static inline HRESULT ICredentialProviderCredential_GetFieldState(ICredentialProviderCredential* This,DWORD dwFieldID,CREDENTIAL_PROVIDER_FIELD_STATE *pcpfs,CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE *pcpfis) {
    616     return This->lpVtbl->GetFieldState(This,dwFieldID,pcpfs,pcpfis);
    617 }
    618 static inline HRESULT ICredentialProviderCredential_GetStringValue(ICredentialProviderCredential* This,DWORD dwFieldID,LPWSTR *ppsz) {
    619     return This->lpVtbl->GetStringValue(This,dwFieldID,ppsz);
    620 }
    621 static inline HRESULT ICredentialProviderCredential_GetBitmapValue(ICredentialProviderCredential* This,DWORD dwFieldID,HBITMAP *phbmp) {
    622     return This->lpVtbl->GetBitmapValue(This,dwFieldID,phbmp);
    623 }
    624 static inline HRESULT ICredentialProviderCredential_GetCheckboxValue(ICredentialProviderCredential* This,DWORD dwFieldID,WINBOOL *pbChecked,LPWSTR *ppszLabel) {
    625     return This->lpVtbl->GetCheckboxValue(This,dwFieldID,pbChecked,ppszLabel);
    626 }
    627 static inline HRESULT ICredentialProviderCredential_GetSubmitButtonValue(ICredentialProviderCredential* This,DWORD dwFieldID,DWORD *pdwAdjacentTo) {
    628     return This->lpVtbl->GetSubmitButtonValue(This,dwFieldID,pdwAdjacentTo);
    629 }
    630 static inline HRESULT ICredentialProviderCredential_GetComboBoxValueCount(ICredentialProviderCredential* This,DWORD dwFieldID,DWORD *pcItems,DWORD *pdwSelectedItem) {
    631     return This->lpVtbl->GetComboBoxValueCount(This,dwFieldID,pcItems,pdwSelectedItem);
    632 }
    633 static inline HRESULT ICredentialProviderCredential_GetComboBoxValueAt(ICredentialProviderCredential* This,DWORD dwFieldID,DWORD dwItem,LPWSTR *ppszItem) {
    634     return This->lpVtbl->GetComboBoxValueAt(This,dwFieldID,dwItem,ppszItem);
    635 }
    636 static inline HRESULT ICredentialProviderCredential_SetStringValue(ICredentialProviderCredential* This,DWORD dwFieldID,LPCWSTR psz) {
    637     return This->lpVtbl->SetStringValue(This,dwFieldID,psz);
    638 }
    639 static inline HRESULT ICredentialProviderCredential_SetCheckboxValue(ICredentialProviderCredential* This,DWORD dwFieldID,WINBOOL bChecked) {
    640     return This->lpVtbl->SetCheckboxValue(This,dwFieldID,bChecked);
    641 }
    642 static inline HRESULT ICredentialProviderCredential_SetComboBoxSelectedValue(ICredentialProviderCredential* This,DWORD dwFieldID,DWORD dwSelectedItem) {
    643     return This->lpVtbl->SetComboBoxSelectedValue(This,dwFieldID,dwSelectedItem);
    644 }
    645 static inline HRESULT ICredentialProviderCredential_CommandLinkClicked(ICredentialProviderCredential* This,DWORD dwFieldID) {
    646     return This->lpVtbl->CommandLinkClicked(This,dwFieldID);
    647 }
    648 static inline HRESULT ICredentialProviderCredential_GetSerialization(ICredentialProviderCredential* This,CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE *pcpgsr,CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION *pcpcs,LPWSTR *ppszOptionalStatusText,CREDENTIAL_PROVIDER_STATUS_ICON *pcpsiOptionalStatusIcon) {
    649     return This->lpVtbl->GetSerialization(This,pcpgsr,pcpcs,ppszOptionalStatusText,pcpsiOptionalStatusIcon);
    650 }
    651 static inline HRESULT ICredentialProviderCredential_ReportResult(ICredentialProviderCredential* This,NTSTATUS ntsStatus,NTSTATUS ntsSubstatus,LPWSTR *ppszOptionalStatusText,CREDENTIAL_PROVIDER_STATUS_ICON *pcpsiOptionalStatusIcon) {
    652     return This->lpVtbl->ReportResult(This,ntsStatus,ntsSubstatus,ppszOptionalStatusText,pcpsiOptionalStatusIcon);
    653 }
    654 #endif
    655 #endif
    656 
    657 #endif
    658 
    659 
    660 #endif  /* __ICredentialProviderCredential_INTERFACE_DEFINED__ */
    661 
    662 /*****************************************************************************
    663  * IQueryContinueWithStatus interface
    664  */
    665 #ifndef __IQueryContinueWithStatus_INTERFACE_DEFINED__
    666 #define __IQueryContinueWithStatus_INTERFACE_DEFINED__
    667 
    668 DEFINE_GUID(IID_IQueryContinueWithStatus, 0x9090be5b, 0x502b, 0x41fb, 0xbc,0xcc, 0x00,0x49,0xa6,0xc7,0x25,0x4b);
    669 #if defined(__cplusplus) && !defined(CINTERFACE)
    670 MIDL_INTERFACE("9090be5b-502b-41fb-bccc-0049a6c7254b")
    671 IQueryContinueWithStatus : public IQueryContinue
    672 {
    673     virtual HRESULT STDMETHODCALLTYPE SetStatusMessage(
    674         LPCWSTR psz) = 0;
    675 
    676 };
    677 #ifdef __CRT_UUID_DECL
    678 __CRT_UUID_DECL(IQueryContinueWithStatus, 0x9090be5b, 0x502b, 0x41fb, 0xbc,0xcc, 0x00,0x49,0xa6,0xc7,0x25,0x4b)
    679 #endif
    680 #else
    681 typedef struct IQueryContinueWithStatusVtbl {
    682     BEGIN_INTERFACE
    683 
    684     /*** IUnknown methods ***/
    685     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    686         IQueryContinueWithStatus *This,
    687         REFIID riid,
    688         void **ppvObject);
    689 
    690     ULONG (STDMETHODCALLTYPE *AddRef)(
    691         IQueryContinueWithStatus *This);
    692 
    693     ULONG (STDMETHODCALLTYPE *Release)(
    694         IQueryContinueWithStatus *This);
    695 
    696     /*** IQueryContinue methods ***/
    697     HRESULT (STDMETHODCALLTYPE *QueryContinue)(
    698         IQueryContinueWithStatus *This);
    699 
    700     /*** IQueryContinueWithStatus methods ***/
    701     HRESULT (STDMETHODCALLTYPE *SetStatusMessage)(
    702         IQueryContinueWithStatus *This,
    703         LPCWSTR psz);
    704 
    705     END_INTERFACE
    706 } IQueryContinueWithStatusVtbl;
    707 
    708 interface IQueryContinueWithStatus {
    709     CONST_VTBL IQueryContinueWithStatusVtbl* lpVtbl;
    710 };
    711 
    712 #ifdef COBJMACROS
    713 #ifndef WIDL_C_INLINE_WRAPPERS
    714 /*** IUnknown methods ***/
    715 #define IQueryContinueWithStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    716 #define IQueryContinueWithStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
    717 #define IQueryContinueWithStatus_Release(This) (This)->lpVtbl->Release(This)
    718 /*** IQueryContinue methods ***/
    719 #define IQueryContinueWithStatus_QueryContinue(This) (This)->lpVtbl->QueryContinue(This)
    720 /*** IQueryContinueWithStatus methods ***/
    721 #define IQueryContinueWithStatus_SetStatusMessage(This,psz) (This)->lpVtbl->SetStatusMessage(This,psz)
    722 #else
    723 /*** IUnknown methods ***/
    724 static inline HRESULT IQueryContinueWithStatus_QueryInterface(IQueryContinueWithStatus* This,REFIID riid,void **ppvObject) {
    725     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    726 }
    727 static inline ULONG IQueryContinueWithStatus_AddRef(IQueryContinueWithStatus* This) {
    728     return This->lpVtbl->AddRef(This);
    729 }
    730 static inline ULONG IQueryContinueWithStatus_Release(IQueryContinueWithStatus* This) {
    731     return This->lpVtbl->Release(This);
    732 }
    733 /*** IQueryContinue methods ***/
    734 static inline HRESULT IQueryContinueWithStatus_QueryContinue(IQueryContinueWithStatus* This) {
    735     return This->lpVtbl->QueryContinue(This);
    736 }
    737 /*** IQueryContinueWithStatus methods ***/
    738 static inline HRESULT IQueryContinueWithStatus_SetStatusMessage(IQueryContinueWithStatus* This,LPCWSTR psz) {
    739     return This->lpVtbl->SetStatusMessage(This,psz);
    740 }
    741 #endif
    742 #endif
    743 
    744 #endif
    745 
    746 
    747 #endif  /* __IQueryContinueWithStatus_INTERFACE_DEFINED__ */
    748 
    749 /*****************************************************************************
    750  * IConnectableCredentialProviderCredential interface
    751  */
    752 #ifndef __IConnectableCredentialProviderCredential_INTERFACE_DEFINED__
    753 #define __IConnectableCredentialProviderCredential_INTERFACE_DEFINED__
    754 
    755 DEFINE_GUID(IID_IConnectableCredentialProviderCredential, 0x9387928b, 0xac75, 0x4bf9, 0x8a,0xb2, 0x2b,0x93,0xc4,0xa5,0x52,0x90);
    756 #if defined(__cplusplus) && !defined(CINTERFACE)
    757 MIDL_INTERFACE("9387928b-ac75-4bf9-8ab2-2b93c4a55290")
    758 IConnectableCredentialProviderCredential : public ICredentialProviderCredential
    759 {
    760     virtual HRESULT STDMETHODCALLTYPE Connect(
    761         IQueryContinueWithStatus *pqcws) = 0;
    762 
    763     virtual HRESULT STDMETHODCALLTYPE Disconnect(
    764         ) = 0;
    765 
    766 };
    767 #ifdef __CRT_UUID_DECL
    768 __CRT_UUID_DECL(IConnectableCredentialProviderCredential, 0x9387928b, 0xac75, 0x4bf9, 0x8a,0xb2, 0x2b,0x93,0xc4,0xa5,0x52,0x90)
    769 #endif
    770 #else
    771 typedef struct IConnectableCredentialProviderCredentialVtbl {
    772     BEGIN_INTERFACE
    773 
    774     /*** IUnknown methods ***/
    775     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    776         IConnectableCredentialProviderCredential *This,
    777         REFIID riid,
    778         void **ppvObject);
    779 
    780     ULONG (STDMETHODCALLTYPE *AddRef)(
    781         IConnectableCredentialProviderCredential *This);
    782 
    783     ULONG (STDMETHODCALLTYPE *Release)(
    784         IConnectableCredentialProviderCredential *This);
    785 
    786     /*** ICredentialProviderCredential methods ***/
    787     HRESULT (STDMETHODCALLTYPE *Advise)(
    788         IConnectableCredentialProviderCredential *This,
    789         ICredentialProviderCredentialEvents *pcpce);
    790 
    791     HRESULT (STDMETHODCALLTYPE *UnAdvise)(
    792         IConnectableCredentialProviderCredential *This);
    793 
    794     HRESULT (STDMETHODCALLTYPE *SetSelected)(
    795         IConnectableCredentialProviderCredential *This,
    796         WINBOOL *pbAutoLogon);
    797 
    798     HRESULT (STDMETHODCALLTYPE *SetDeselected)(
    799         IConnectableCredentialProviderCredential *This);
    800 
    801     HRESULT (STDMETHODCALLTYPE *GetFieldState)(
    802         IConnectableCredentialProviderCredential *This,
    803         DWORD dwFieldID,
    804         CREDENTIAL_PROVIDER_FIELD_STATE *pcpfs,
    805         CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE *pcpfis);
    806 
    807     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
    808         IConnectableCredentialProviderCredential *This,
    809         DWORD dwFieldID,
    810         LPWSTR *ppsz);
    811 
    812     HRESULT (STDMETHODCALLTYPE *GetBitmapValue)(
    813         IConnectableCredentialProviderCredential *This,
    814         DWORD dwFieldID,
    815         HBITMAP *phbmp);
    816 
    817     HRESULT (STDMETHODCALLTYPE *GetCheckboxValue)(
    818         IConnectableCredentialProviderCredential *This,
    819         DWORD dwFieldID,
    820         WINBOOL *pbChecked,
    821         LPWSTR *ppszLabel);
    822 
    823     HRESULT (STDMETHODCALLTYPE *GetSubmitButtonValue)(
    824         IConnectableCredentialProviderCredential *This,
    825         DWORD dwFieldID,
    826         DWORD *pdwAdjacentTo);
    827 
    828     HRESULT (STDMETHODCALLTYPE *GetComboBoxValueCount)(
    829         IConnectableCredentialProviderCredential *This,
    830         DWORD dwFieldID,
    831         DWORD *pcItems,
    832         DWORD *pdwSelectedItem);
    833 
    834     HRESULT (STDMETHODCALLTYPE *GetComboBoxValueAt)(
    835         IConnectableCredentialProviderCredential *This,
    836         DWORD dwFieldID,
    837         DWORD dwItem,
    838         LPWSTR *ppszItem);
    839 
    840     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
    841         IConnectableCredentialProviderCredential *This,
    842         DWORD dwFieldID,
    843         LPCWSTR psz);
    844 
    845     HRESULT (STDMETHODCALLTYPE *SetCheckboxValue)(
    846         IConnectableCredentialProviderCredential *This,
    847         DWORD dwFieldID,
    848         WINBOOL bChecked);
    849 
    850     HRESULT (STDMETHODCALLTYPE *SetComboBoxSelectedValue)(
    851         IConnectableCredentialProviderCredential *This,
    852         DWORD dwFieldID,
    853         DWORD dwSelectedItem);
    854 
    855     HRESULT (STDMETHODCALLTYPE *CommandLinkClicked)(
    856         IConnectableCredentialProviderCredential *This,
    857         DWORD dwFieldID);
    858 
    859     HRESULT (STDMETHODCALLTYPE *GetSerialization)(
    860         IConnectableCredentialProviderCredential *This,
    861         CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE *pcpgsr,
    862         CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION *pcpcs,
    863         LPWSTR *ppszOptionalStatusText,
    864         CREDENTIAL_PROVIDER_STATUS_ICON *pcpsiOptionalStatusIcon);
    865 
    866     HRESULT (STDMETHODCALLTYPE *ReportResult)(
    867         IConnectableCredentialProviderCredential *This,
    868         NTSTATUS ntsStatus,
    869         NTSTATUS ntsSubstatus,
    870         LPWSTR *ppszOptionalStatusText,
    871         CREDENTIAL_PROVIDER_STATUS_ICON *pcpsiOptionalStatusIcon);
    872 
    873     /*** IConnectableCredentialProviderCredential methods ***/
    874     HRESULT (STDMETHODCALLTYPE *Connect)(
    875         IConnectableCredentialProviderCredential *This,
    876         IQueryContinueWithStatus *pqcws);
    877 
    878     HRESULT (STDMETHODCALLTYPE *Disconnect)(
    879         IConnectableCredentialProviderCredential *This);
    880 
    881     END_INTERFACE
    882 } IConnectableCredentialProviderCredentialVtbl;
    883 
    884 interface IConnectableCredentialProviderCredential {
    885     CONST_VTBL IConnectableCredentialProviderCredentialVtbl* lpVtbl;
    886 };
    887 
    888 #ifdef COBJMACROS
    889 #ifndef WIDL_C_INLINE_WRAPPERS
    890 /*** IUnknown methods ***/
    891 #define IConnectableCredentialProviderCredential_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    892 #define IConnectableCredentialProviderCredential_AddRef(This) (This)->lpVtbl->AddRef(This)
    893 #define IConnectableCredentialProviderCredential_Release(This) (This)->lpVtbl->Release(This)
    894 /*** ICredentialProviderCredential methods ***/
    895 #define IConnectableCredentialProviderCredential_Advise(This,pcpce) (This)->lpVtbl->Advise(This,pcpce)
    896 #define IConnectableCredentialProviderCredential_UnAdvise(This) (This)->lpVtbl->UnAdvise(This)
    897 #define IConnectableCredentialProviderCredential_SetSelected(This,pbAutoLogon) (This)->lpVtbl->SetSelected(This,pbAutoLogon)
    898 #define IConnectableCredentialProviderCredential_SetDeselected(This) (This)->lpVtbl->SetDeselected(This)
    899 #define IConnectableCredentialProviderCredential_GetFieldState(This,dwFieldID,pcpfs,pcpfis) (This)->lpVtbl->GetFieldState(This,dwFieldID,pcpfs,pcpfis)
    900 #define IConnectableCredentialProviderCredential_GetStringValue(This,dwFieldID,ppsz) (This)->lpVtbl->GetStringValue(This,dwFieldID,ppsz)
    901 #define IConnectableCredentialProviderCredential_GetBitmapValue(This,dwFieldID,phbmp) (This)->lpVtbl->GetBitmapValue(This,dwFieldID,phbmp)
    902 #define IConnectableCredentialProviderCredential_GetCheckboxValue(This,dwFieldID,pbChecked,ppszLabel) (This)->lpVtbl->GetCheckboxValue(This,dwFieldID,pbChecked,ppszLabel)
    903 #define IConnectableCredentialProviderCredential_GetSubmitButtonValue(This,dwFieldID,pdwAdjacentTo) (This)->lpVtbl->GetSubmitButtonValue(This,dwFieldID,pdwAdjacentTo)
    904 #define IConnectableCredentialProviderCredential_GetComboBoxValueCount(This,dwFieldID,pcItems,pdwSelectedItem) (This)->lpVtbl->GetComboBoxValueCount(This,dwFieldID,pcItems,pdwSelectedItem)
    905 #define IConnectableCredentialProviderCredential_GetComboBoxValueAt(This,dwFieldID,dwItem,ppszItem) (This)->lpVtbl->GetComboBoxValueAt(This,dwFieldID,dwItem,ppszItem)
    906 #define IConnectableCredentialProviderCredential_SetStringValue(This,dwFieldID,psz) (This)->lpVtbl->SetStringValue(This,dwFieldID,psz)
    907 #define IConnectableCredentialProviderCredential_SetCheckboxValue(This,dwFieldID,bChecked) (This)->lpVtbl->SetCheckboxValue(This,dwFieldID,bChecked)
    908 #define IConnectableCredentialProviderCredential_SetComboBoxSelectedValue(This,dwFieldID,dwSelectedItem) (This)->lpVtbl->SetComboBoxSelectedValue(This,dwFieldID,dwSelectedItem)
    909 #define IConnectableCredentialProviderCredential_CommandLinkClicked(This,dwFieldID) (This)->lpVtbl->CommandLinkClicked(This,dwFieldID)
    910 #define IConnectableCredentialProviderCredential_GetSerialization(This,pcpgsr,pcpcs,ppszOptionalStatusText,pcpsiOptionalStatusIcon) (This)->lpVtbl->GetSerialization(This,pcpgsr,pcpcs,ppszOptionalStatusText,pcpsiOptionalStatusIcon)
    911 #define IConnectableCredentialProviderCredential_ReportResult(This,ntsStatus,ntsSubstatus,ppszOptionalStatusText,pcpsiOptionalStatusIcon) (This)->lpVtbl->ReportResult(This,ntsStatus,ntsSubstatus,ppszOptionalStatusText,pcpsiOptionalStatusIcon)
    912 /*** IConnectableCredentialProviderCredential methods ***/
    913 #define IConnectableCredentialProviderCredential_Connect(This,pqcws) (This)->lpVtbl->Connect(This,pqcws)
    914 #define IConnectableCredentialProviderCredential_Disconnect(This) (This)->lpVtbl->Disconnect(This)
    915 #else
    916 /*** IUnknown methods ***/
    917 static inline HRESULT IConnectableCredentialProviderCredential_QueryInterface(IConnectableCredentialProviderCredential* This,REFIID riid,void **ppvObject) {
    918     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    919 }
    920 static inline ULONG IConnectableCredentialProviderCredential_AddRef(IConnectableCredentialProviderCredential* This) {
    921     return This->lpVtbl->AddRef(This);
    922 }
    923 static inline ULONG IConnectableCredentialProviderCredential_Release(IConnectableCredentialProviderCredential* This) {
    924     return This->lpVtbl->Release(This);
    925 }
    926 /*** ICredentialProviderCredential methods ***/
    927 static inline HRESULT IConnectableCredentialProviderCredential_Advise(IConnectableCredentialProviderCredential* This,ICredentialProviderCredentialEvents *pcpce) {
    928     return This->lpVtbl->Advise(This,pcpce);
    929 }
    930 static inline HRESULT IConnectableCredentialProviderCredential_UnAdvise(IConnectableCredentialProviderCredential* This) {
    931     return This->lpVtbl->UnAdvise(This);
    932 }
    933 static inline HRESULT IConnectableCredentialProviderCredential_SetSelected(IConnectableCredentialProviderCredential* This,WINBOOL *pbAutoLogon) {
    934     return This->lpVtbl->SetSelected(This,pbAutoLogon);
    935 }
    936 static inline HRESULT IConnectableCredentialProviderCredential_SetDeselected(IConnectableCredentialProviderCredential* This) {
    937     return This->lpVtbl->SetDeselected(This);
    938 }
    939 static inline HRESULT IConnectableCredentialProviderCredential_GetFieldState(IConnectableCredentialProviderCredential* This,DWORD dwFieldID,CREDENTIAL_PROVIDER_FIELD_STATE *pcpfs,CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE *pcpfis) {
    940     return This->lpVtbl->GetFieldState(This,dwFieldID,pcpfs,pcpfis);
    941 }
    942 static inline HRESULT IConnectableCredentialProviderCredential_GetStringValue(IConnectableCredentialProviderCredential* This,DWORD dwFieldID,LPWSTR *ppsz) {
    943     return This->lpVtbl->GetStringValue(This,dwFieldID,ppsz);
    944 }
    945 static inline HRESULT IConnectableCredentialProviderCredential_GetBitmapValue(IConnectableCredentialProviderCredential* This,DWORD dwFieldID,HBITMAP *phbmp) {
    946     return This->lpVtbl->GetBitmapValue(This,dwFieldID,phbmp);
    947 }
    948 static inline HRESULT IConnectableCredentialProviderCredential_GetCheckboxValue(IConnectableCredentialProviderCredential* This,DWORD dwFieldID,WINBOOL *pbChecked,LPWSTR *ppszLabel) {
    949     return This->lpVtbl->GetCheckboxValue(This,dwFieldID,pbChecked,ppszLabel);
    950 }
    951 static inline HRESULT IConnectableCredentialProviderCredential_GetSubmitButtonValue(IConnectableCredentialProviderCredential* This,DWORD dwFieldID,DWORD *pdwAdjacentTo) {
    952     return This->lpVtbl->GetSubmitButtonValue(This,dwFieldID,pdwAdjacentTo);
    953 }
    954 static inline HRESULT IConnectableCredentialProviderCredential_GetComboBoxValueCount(IConnectableCredentialProviderCredential* This,DWORD dwFieldID,DWORD *pcItems,DWORD *pdwSelectedItem) {
    955     return This->lpVtbl->GetComboBoxValueCount(This,dwFieldID,pcItems,pdwSelectedItem);
    956 }
    957 static inline HRESULT IConnectableCredentialProviderCredential_GetComboBoxValueAt(IConnectableCredentialProviderCredential* This,DWORD dwFieldID,DWORD dwItem,LPWSTR *ppszItem) {
    958     return This->lpVtbl->GetComboBoxValueAt(This,dwFieldID,dwItem,ppszItem);
    959 }
    960 static inline HRESULT IConnectableCredentialProviderCredential_SetStringValue(IConnectableCredentialProviderCredential* This,DWORD dwFieldID,LPCWSTR psz) {
    961     return This->lpVtbl->SetStringValue(This,dwFieldID,psz);
    962 }
    963 static inline HRESULT IConnectableCredentialProviderCredential_SetCheckboxValue(IConnectableCredentialProviderCredential* This,DWORD dwFieldID,WINBOOL bChecked) {
    964     return This->lpVtbl->SetCheckboxValue(This,dwFieldID,bChecked);
    965 }
    966 static inline HRESULT IConnectableCredentialProviderCredential_SetComboBoxSelectedValue(IConnectableCredentialProviderCredential* This,DWORD dwFieldID,DWORD dwSelectedItem) {
    967     return This->lpVtbl->SetComboBoxSelectedValue(This,dwFieldID,dwSelectedItem);
    968 }
    969 static inline HRESULT IConnectableCredentialProviderCredential_CommandLinkClicked(IConnectableCredentialProviderCredential* This,DWORD dwFieldID) {
    970     return This->lpVtbl->CommandLinkClicked(This,dwFieldID);
    971 }
    972 static inline HRESULT IConnectableCredentialProviderCredential_GetSerialization(IConnectableCredentialProviderCredential* This,CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE *pcpgsr,CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION *pcpcs,LPWSTR *ppszOptionalStatusText,CREDENTIAL_PROVIDER_STATUS_ICON *pcpsiOptionalStatusIcon) {
    973     return This->lpVtbl->GetSerialization(This,pcpgsr,pcpcs,ppszOptionalStatusText,pcpsiOptionalStatusIcon);
    974 }
    975 static inline HRESULT IConnectableCredentialProviderCredential_ReportResult(IConnectableCredentialProviderCredential* This,NTSTATUS ntsStatus,NTSTATUS ntsSubstatus,LPWSTR *ppszOptionalStatusText,CREDENTIAL_PROVIDER_STATUS_ICON *pcpsiOptionalStatusIcon) {
    976     return This->lpVtbl->ReportResult(This,ntsStatus,ntsSubstatus,ppszOptionalStatusText,pcpsiOptionalStatusIcon);
    977 }
    978 /*** IConnectableCredentialProviderCredential methods ***/
    979 static inline HRESULT IConnectableCredentialProviderCredential_Connect(IConnectableCredentialProviderCredential* This,IQueryContinueWithStatus *pqcws) {
    980     return This->lpVtbl->Connect(This,pqcws);
    981 }
    982 static inline HRESULT IConnectableCredentialProviderCredential_Disconnect(IConnectableCredentialProviderCredential* This) {
    983     return This->lpVtbl->Disconnect(This);
    984 }
    985 #endif
    986 #endif
    987 
    988 #endif
    989 
    990 
    991 #endif  /* __IConnectableCredentialProviderCredential_INTERFACE_DEFINED__ */
    992 
    993 /*****************************************************************************
    994  * ICredentialProviderCredentialEvents interface
    995  */
    996 #ifndef __ICredentialProviderCredentialEvents_INTERFACE_DEFINED__
    997 #define __ICredentialProviderCredentialEvents_INTERFACE_DEFINED__
    998 
    999 DEFINE_GUID(IID_ICredentialProviderCredentialEvents, 0xfa6fa76b, 0x66b7, 0x4b11, 0x95,0xf1, 0x86,0x17,0x11,0x18,0xe8,0x16);
   1000 #if defined(__cplusplus) && !defined(CINTERFACE)
   1001 MIDL_INTERFACE("fa6fa76b-66b7-4b11-95f1-86171118e816")
   1002 ICredentialProviderCredentialEvents : public IUnknown
   1003 {
   1004     virtual HRESULT STDMETHODCALLTYPE SetFieldState(
   1005         ICredentialProviderCredential *pcpc,
   1006         DWORD dwFieldID,
   1007         CREDENTIAL_PROVIDER_FIELD_STATE cpfs) = 0;
   1008 
   1009     virtual HRESULT STDMETHODCALLTYPE SetFieldInteractiveState(
   1010         ICredentialProviderCredential *pcpc,
   1011         DWORD dwFieldID,
   1012         CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE cpfis) = 0;
   1013 
   1014     virtual HRESULT STDMETHODCALLTYPE SetFieldString(
   1015         ICredentialProviderCredential *pcpc,
   1016         DWORD dwFieldID,
   1017         LPCWSTR psz) = 0;
   1018 
   1019     virtual HRESULT STDMETHODCALLTYPE SetFieldCheckbox(
   1020         ICredentialProviderCredential *pcpc,
   1021         DWORD dwFieldID,
   1022         WINBOOL bChecked,
   1023         LPCWSTR pszLabel) = 0;
   1024 
   1025     virtual HRESULT STDMETHODCALLTYPE SetFieldBitmap(
   1026         ICredentialProviderCredential *pcpc,
   1027         DWORD dwFieldID,
   1028         HBITMAP hbmp) = 0;
   1029 
   1030     virtual HRESULT STDMETHODCALLTYPE SetFieldComboBoxSelectedItem(
   1031         ICredentialProviderCredential *pcpc,
   1032         DWORD dwFieldID,
   1033         DWORD dwSelectedItem) = 0;
   1034 
   1035     virtual HRESULT STDMETHODCALLTYPE DeleteFieldComboBoxItem(
   1036         ICredentialProviderCredential *pcpc,
   1037         DWORD dwFieldID,
   1038         DWORD dwItem) = 0;
   1039 
   1040     virtual HRESULT STDMETHODCALLTYPE AppendFieldComboBoxItem(
   1041         ICredentialProviderCredential *pcpc,
   1042         DWORD dwFieldID,
   1043         LPCWSTR pszItem) = 0;
   1044 
   1045     virtual HRESULT STDMETHODCALLTYPE SetFieldSubmitButton(
   1046         ICredentialProviderCredential *pcpc,
   1047         DWORD dwFieldID,
   1048         DWORD dwAdjacentTo) = 0;
   1049 
   1050     virtual HRESULT STDMETHODCALLTYPE OnCreatingWindow(
   1051         HWND *phwndOwner) = 0;
   1052 
   1053 };
   1054 #ifdef __CRT_UUID_DECL
   1055 __CRT_UUID_DECL(ICredentialProviderCredentialEvents, 0xfa6fa76b, 0x66b7, 0x4b11, 0x95,0xf1, 0x86,0x17,0x11,0x18,0xe8,0x16)
   1056 #endif
   1057 #else
   1058 typedef struct ICredentialProviderCredentialEventsVtbl {
   1059     BEGIN_INTERFACE
   1060 
   1061     /*** IUnknown methods ***/
   1062     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1063         ICredentialProviderCredentialEvents *This,
   1064         REFIID riid,
   1065         void **ppvObject);
   1066 
   1067     ULONG (STDMETHODCALLTYPE *AddRef)(
   1068         ICredentialProviderCredentialEvents *This);
   1069 
   1070     ULONG (STDMETHODCALLTYPE *Release)(
   1071         ICredentialProviderCredentialEvents *This);
   1072 
   1073     /*** ICredentialProviderCredentialEvents methods ***/
   1074     HRESULT (STDMETHODCALLTYPE *SetFieldState)(
   1075         ICredentialProviderCredentialEvents *This,
   1076         ICredentialProviderCredential *pcpc,
   1077         DWORD dwFieldID,
   1078         CREDENTIAL_PROVIDER_FIELD_STATE cpfs);
   1079 
   1080     HRESULT (STDMETHODCALLTYPE *SetFieldInteractiveState)(
   1081         ICredentialProviderCredentialEvents *This,
   1082         ICredentialProviderCredential *pcpc,
   1083         DWORD dwFieldID,
   1084         CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE cpfis);
   1085 
   1086     HRESULT (STDMETHODCALLTYPE *SetFieldString)(
   1087         ICredentialProviderCredentialEvents *This,
   1088         ICredentialProviderCredential *pcpc,
   1089         DWORD dwFieldID,
   1090         LPCWSTR psz);
   1091 
   1092     HRESULT (STDMETHODCALLTYPE *SetFieldCheckbox)(
   1093         ICredentialProviderCredentialEvents *This,
   1094         ICredentialProviderCredential *pcpc,
   1095         DWORD dwFieldID,
   1096         WINBOOL bChecked,
   1097         LPCWSTR pszLabel);
   1098 
   1099     HRESULT (STDMETHODCALLTYPE *SetFieldBitmap)(
   1100         ICredentialProviderCredentialEvents *This,
   1101         ICredentialProviderCredential *pcpc,
   1102         DWORD dwFieldID,
   1103         HBITMAP hbmp);
   1104 
   1105     HRESULT (STDMETHODCALLTYPE *SetFieldComboBoxSelectedItem)(
   1106         ICredentialProviderCredentialEvents *This,
   1107         ICredentialProviderCredential *pcpc,
   1108         DWORD dwFieldID,
   1109         DWORD dwSelectedItem);
   1110 
   1111     HRESULT (STDMETHODCALLTYPE *DeleteFieldComboBoxItem)(
   1112         ICredentialProviderCredentialEvents *This,
   1113         ICredentialProviderCredential *pcpc,
   1114         DWORD dwFieldID,
   1115         DWORD dwItem);
   1116 
   1117     HRESULT (STDMETHODCALLTYPE *AppendFieldComboBoxItem)(
   1118         ICredentialProviderCredentialEvents *This,
   1119         ICredentialProviderCredential *pcpc,
   1120         DWORD dwFieldID,
   1121         LPCWSTR pszItem);
   1122 
   1123     HRESULT (STDMETHODCALLTYPE *SetFieldSubmitButton)(
   1124         ICredentialProviderCredentialEvents *This,
   1125         ICredentialProviderCredential *pcpc,
   1126         DWORD dwFieldID,
   1127         DWORD dwAdjacentTo);
   1128 
   1129     HRESULT (STDMETHODCALLTYPE *OnCreatingWindow)(
   1130         ICredentialProviderCredentialEvents *This,
   1131         HWND *phwndOwner);
   1132 
   1133     END_INTERFACE
   1134 } ICredentialProviderCredentialEventsVtbl;
   1135 
   1136 interface ICredentialProviderCredentialEvents {
   1137     CONST_VTBL ICredentialProviderCredentialEventsVtbl* lpVtbl;
   1138 };
   1139 
   1140 #ifdef COBJMACROS
   1141 #ifndef WIDL_C_INLINE_WRAPPERS
   1142 /*** IUnknown methods ***/
   1143 #define ICredentialProviderCredentialEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1144 #define ICredentialProviderCredentialEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
   1145 #define ICredentialProviderCredentialEvents_Release(This) (This)->lpVtbl->Release(This)
   1146 /*** ICredentialProviderCredentialEvents methods ***/
   1147 #define ICredentialProviderCredentialEvents_SetFieldState(This,pcpc,dwFieldID,cpfs) (This)->lpVtbl->SetFieldState(This,pcpc,dwFieldID,cpfs)
   1148 #define ICredentialProviderCredentialEvents_SetFieldInteractiveState(This,pcpc,dwFieldID,cpfis) (This)->lpVtbl->SetFieldInteractiveState(This,pcpc,dwFieldID,cpfis)
   1149 #define ICredentialProviderCredentialEvents_SetFieldString(This,pcpc,dwFieldID,psz) (This)->lpVtbl->SetFieldString(This,pcpc,dwFieldID,psz)
   1150 #define ICredentialProviderCredentialEvents_SetFieldCheckbox(This,pcpc,dwFieldID,bChecked,pszLabel) (This)->lpVtbl->SetFieldCheckbox(This,pcpc,dwFieldID,bChecked,pszLabel)
   1151 #define ICredentialProviderCredentialEvents_SetFieldBitmap(This,pcpc,dwFieldID,hbmp) (This)->lpVtbl->SetFieldBitmap(This,pcpc,dwFieldID,hbmp)
   1152 #define ICredentialProviderCredentialEvents_SetFieldComboBoxSelectedItem(This,pcpc,dwFieldID,dwSelectedItem) (This)->lpVtbl->SetFieldComboBoxSelectedItem(This,pcpc,dwFieldID,dwSelectedItem)
   1153 #define ICredentialProviderCredentialEvents_DeleteFieldComboBoxItem(This,pcpc,dwFieldID,dwItem) (This)->lpVtbl->DeleteFieldComboBoxItem(This,pcpc,dwFieldID,dwItem)
   1154 #define ICredentialProviderCredentialEvents_AppendFieldComboBoxItem(This,pcpc,dwFieldID,pszItem) (This)->lpVtbl->AppendFieldComboBoxItem(This,pcpc,dwFieldID,pszItem)
   1155 #define ICredentialProviderCredentialEvents_SetFieldSubmitButton(This,pcpc,dwFieldID,dwAdjacentTo) (This)->lpVtbl->SetFieldSubmitButton(This,pcpc,dwFieldID,dwAdjacentTo)
   1156 #define ICredentialProviderCredentialEvents_OnCreatingWindow(This,phwndOwner) (This)->lpVtbl->OnCreatingWindow(This,phwndOwner)
   1157 #else
   1158 /*** IUnknown methods ***/
   1159 static inline HRESULT ICredentialProviderCredentialEvents_QueryInterface(ICredentialProviderCredentialEvents* This,REFIID riid,void **ppvObject) {
   1160     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1161 }
   1162 static inline ULONG ICredentialProviderCredentialEvents_AddRef(ICredentialProviderCredentialEvents* This) {
   1163     return This->lpVtbl->AddRef(This);
   1164 }
   1165 static inline ULONG ICredentialProviderCredentialEvents_Release(ICredentialProviderCredentialEvents* This) {
   1166     return This->lpVtbl->Release(This);
   1167 }
   1168 /*** ICredentialProviderCredentialEvents methods ***/
   1169 static inline HRESULT ICredentialProviderCredentialEvents_SetFieldState(ICredentialProviderCredentialEvents* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,CREDENTIAL_PROVIDER_FIELD_STATE cpfs) {
   1170     return This->lpVtbl->SetFieldState(This,pcpc,dwFieldID,cpfs);
   1171 }
   1172 static inline HRESULT ICredentialProviderCredentialEvents_SetFieldInteractiveState(ICredentialProviderCredentialEvents* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE cpfis) {
   1173     return This->lpVtbl->SetFieldInteractiveState(This,pcpc,dwFieldID,cpfis);
   1174 }
   1175 static inline HRESULT ICredentialProviderCredentialEvents_SetFieldString(ICredentialProviderCredentialEvents* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,LPCWSTR psz) {
   1176     return This->lpVtbl->SetFieldString(This,pcpc,dwFieldID,psz);
   1177 }
   1178 static inline HRESULT ICredentialProviderCredentialEvents_SetFieldCheckbox(ICredentialProviderCredentialEvents* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,WINBOOL bChecked,LPCWSTR pszLabel) {
   1179     return This->lpVtbl->SetFieldCheckbox(This,pcpc,dwFieldID,bChecked,pszLabel);
   1180 }
   1181 static inline HRESULT ICredentialProviderCredentialEvents_SetFieldBitmap(ICredentialProviderCredentialEvents* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,HBITMAP hbmp) {
   1182     return This->lpVtbl->SetFieldBitmap(This,pcpc,dwFieldID,hbmp);
   1183 }
   1184 static inline HRESULT ICredentialProviderCredentialEvents_SetFieldComboBoxSelectedItem(ICredentialProviderCredentialEvents* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,DWORD dwSelectedItem) {
   1185     return This->lpVtbl->SetFieldComboBoxSelectedItem(This,pcpc,dwFieldID,dwSelectedItem);
   1186 }
   1187 static inline HRESULT ICredentialProviderCredentialEvents_DeleteFieldComboBoxItem(ICredentialProviderCredentialEvents* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,DWORD dwItem) {
   1188     return This->lpVtbl->DeleteFieldComboBoxItem(This,pcpc,dwFieldID,dwItem);
   1189 }
   1190 static inline HRESULT ICredentialProviderCredentialEvents_AppendFieldComboBoxItem(ICredentialProviderCredentialEvents* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,LPCWSTR pszItem) {
   1191     return This->lpVtbl->AppendFieldComboBoxItem(This,pcpc,dwFieldID,pszItem);
   1192 }
   1193 static inline HRESULT ICredentialProviderCredentialEvents_SetFieldSubmitButton(ICredentialProviderCredentialEvents* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,DWORD dwAdjacentTo) {
   1194     return This->lpVtbl->SetFieldSubmitButton(This,pcpc,dwFieldID,dwAdjacentTo);
   1195 }
   1196 static inline HRESULT ICredentialProviderCredentialEvents_OnCreatingWindow(ICredentialProviderCredentialEvents* This,HWND *phwndOwner) {
   1197     return This->lpVtbl->OnCreatingWindow(This,phwndOwner);
   1198 }
   1199 #endif
   1200 #endif
   1201 
   1202 #endif
   1203 
   1204 
   1205 #endif  /* __ICredentialProviderCredentialEvents_INTERFACE_DEFINED__ */
   1206 
   1207 #ifndef __ICredentialProviderEvents_FWD_DEFINED__
   1208 #define __ICredentialProviderEvents_FWD_DEFINED__
   1209 typedef interface ICredentialProviderEvents ICredentialProviderEvents;
   1210 #ifdef __cplusplus
   1211 interface ICredentialProviderEvents;
   1212 #endif /* __cplusplus */
   1213 #endif
   1214 
   1215 /*****************************************************************************
   1216  * ICredentialProvider interface
   1217  */
   1218 #ifndef __ICredentialProvider_INTERFACE_DEFINED__
   1219 #define __ICredentialProvider_INTERFACE_DEFINED__
   1220 
   1221 DEFINE_GUID(IID_ICredentialProvider, 0xd27c3481, 0x5a1c, 0x45b2, 0x8a,0xaa, 0xc2,0x0e,0xbb,0xe8,0x22,0x9e);
   1222 #if defined(__cplusplus) && !defined(CINTERFACE)
   1223 MIDL_INTERFACE("d27c3481-5a1c-45b2-8aaa-c20ebbe8229e")
   1224 ICredentialProvider : public IUnknown
   1225 {
   1226     virtual HRESULT STDMETHODCALLTYPE SetUsageScenario(
   1227         CREDENTIAL_PROVIDER_USAGE_SCENARIO cpus,
   1228         DWORD dwFlags) = 0;
   1229 
   1230     virtual HRESULT STDMETHODCALLTYPE SetSerialization(
   1231         const CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION *pcpcs) = 0;
   1232 
   1233     virtual HRESULT STDMETHODCALLTYPE Advise(
   1234         ICredentialProviderEvents *pcpe,
   1235         UINT_PTR upAdviseContext) = 0;
   1236 
   1237     virtual HRESULT STDMETHODCALLTYPE UnAdvise(
   1238         ) = 0;
   1239 
   1240     virtual HRESULT STDMETHODCALLTYPE GetFieldDescriptorCount(
   1241         DWORD *pdwCount) = 0;
   1242 
   1243     virtual HRESULT STDMETHODCALLTYPE GetFieldDescriptorAt(
   1244         DWORD dwIndex,
   1245         CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR **ppcpfd) = 0;
   1246 
   1247     virtual HRESULT STDMETHODCALLTYPE GetCredentialCount(
   1248         DWORD *pdwCount,
   1249         DWORD *pdwDefault,
   1250         WINBOOL *pbAutoLogonWithDefault) = 0;
   1251 
   1252     virtual HRESULT STDMETHODCALLTYPE GetCredentialAt(
   1253         DWORD dwIndex,
   1254         ICredentialProviderCredential **ppcpc) = 0;
   1255 
   1256 };
   1257 #ifdef __CRT_UUID_DECL
   1258 __CRT_UUID_DECL(ICredentialProvider, 0xd27c3481, 0x5a1c, 0x45b2, 0x8a,0xaa, 0xc2,0x0e,0xbb,0xe8,0x22,0x9e)
   1259 #endif
   1260 #else
   1261 typedef struct ICredentialProviderVtbl {
   1262     BEGIN_INTERFACE
   1263 
   1264     /*** IUnknown methods ***/
   1265     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1266         ICredentialProvider *This,
   1267         REFIID riid,
   1268         void **ppvObject);
   1269 
   1270     ULONG (STDMETHODCALLTYPE *AddRef)(
   1271         ICredentialProvider *This);
   1272 
   1273     ULONG (STDMETHODCALLTYPE *Release)(
   1274         ICredentialProvider *This);
   1275 
   1276     /*** ICredentialProvider methods ***/
   1277     HRESULT (STDMETHODCALLTYPE *SetUsageScenario)(
   1278         ICredentialProvider *This,
   1279         CREDENTIAL_PROVIDER_USAGE_SCENARIO cpus,
   1280         DWORD dwFlags);
   1281 
   1282     HRESULT (STDMETHODCALLTYPE *SetSerialization)(
   1283         ICredentialProvider *This,
   1284         const CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION *pcpcs);
   1285 
   1286     HRESULT (STDMETHODCALLTYPE *Advise)(
   1287         ICredentialProvider *This,
   1288         ICredentialProviderEvents *pcpe,
   1289         UINT_PTR upAdviseContext);
   1290 
   1291     HRESULT (STDMETHODCALLTYPE *UnAdvise)(
   1292         ICredentialProvider *This);
   1293 
   1294     HRESULT (STDMETHODCALLTYPE *GetFieldDescriptorCount)(
   1295         ICredentialProvider *This,
   1296         DWORD *pdwCount);
   1297 
   1298     HRESULT (STDMETHODCALLTYPE *GetFieldDescriptorAt)(
   1299         ICredentialProvider *This,
   1300         DWORD dwIndex,
   1301         CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR **ppcpfd);
   1302 
   1303     HRESULT (STDMETHODCALLTYPE *GetCredentialCount)(
   1304         ICredentialProvider *This,
   1305         DWORD *pdwCount,
   1306         DWORD *pdwDefault,
   1307         WINBOOL *pbAutoLogonWithDefault);
   1308 
   1309     HRESULT (STDMETHODCALLTYPE *GetCredentialAt)(
   1310         ICredentialProvider *This,
   1311         DWORD dwIndex,
   1312         ICredentialProviderCredential **ppcpc);
   1313 
   1314     END_INTERFACE
   1315 } ICredentialProviderVtbl;
   1316 
   1317 interface ICredentialProvider {
   1318     CONST_VTBL ICredentialProviderVtbl* lpVtbl;
   1319 };
   1320 
   1321 #ifdef COBJMACROS
   1322 #ifndef WIDL_C_INLINE_WRAPPERS
   1323 /*** IUnknown methods ***/
   1324 #define ICredentialProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1325 #define ICredentialProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
   1326 #define ICredentialProvider_Release(This) (This)->lpVtbl->Release(This)
   1327 /*** ICredentialProvider methods ***/
   1328 #define ICredentialProvider_SetUsageScenario(This,cpus,dwFlags) (This)->lpVtbl->SetUsageScenario(This,cpus,dwFlags)
   1329 #define ICredentialProvider_SetSerialization(This,pcpcs) (This)->lpVtbl->SetSerialization(This,pcpcs)
   1330 #define ICredentialProvider_Advise(This,pcpe,upAdviseContext) (This)->lpVtbl->Advise(This,pcpe,upAdviseContext)
   1331 #define ICredentialProvider_UnAdvise(This) (This)->lpVtbl->UnAdvise(This)
   1332 #define ICredentialProvider_GetFieldDescriptorCount(This,pdwCount) (This)->lpVtbl->GetFieldDescriptorCount(This,pdwCount)
   1333 #define ICredentialProvider_GetFieldDescriptorAt(This,dwIndex,ppcpfd) (This)->lpVtbl->GetFieldDescriptorAt(This,dwIndex,ppcpfd)
   1334 #define ICredentialProvider_GetCredentialCount(This,pdwCount,pdwDefault,pbAutoLogonWithDefault) (This)->lpVtbl->GetCredentialCount(This,pdwCount,pdwDefault,pbAutoLogonWithDefault)
   1335 #define ICredentialProvider_GetCredentialAt(This,dwIndex,ppcpc) (This)->lpVtbl->GetCredentialAt(This,dwIndex,ppcpc)
   1336 #else
   1337 /*** IUnknown methods ***/
   1338 static inline HRESULT ICredentialProvider_QueryInterface(ICredentialProvider* This,REFIID riid,void **ppvObject) {
   1339     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1340 }
   1341 static inline ULONG ICredentialProvider_AddRef(ICredentialProvider* This) {
   1342     return This->lpVtbl->AddRef(This);
   1343 }
   1344 static inline ULONG ICredentialProvider_Release(ICredentialProvider* This) {
   1345     return This->lpVtbl->Release(This);
   1346 }
   1347 /*** ICredentialProvider methods ***/
   1348 static inline HRESULT ICredentialProvider_SetUsageScenario(ICredentialProvider* This,CREDENTIAL_PROVIDER_USAGE_SCENARIO cpus,DWORD dwFlags) {
   1349     return This->lpVtbl->SetUsageScenario(This,cpus,dwFlags);
   1350 }
   1351 static inline HRESULT ICredentialProvider_SetSerialization(ICredentialProvider* This,const CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION *pcpcs) {
   1352     return This->lpVtbl->SetSerialization(This,pcpcs);
   1353 }
   1354 static inline HRESULT ICredentialProvider_Advise(ICredentialProvider* This,ICredentialProviderEvents *pcpe,UINT_PTR upAdviseContext) {
   1355     return This->lpVtbl->Advise(This,pcpe,upAdviseContext);
   1356 }
   1357 static inline HRESULT ICredentialProvider_UnAdvise(ICredentialProvider* This) {
   1358     return This->lpVtbl->UnAdvise(This);
   1359 }
   1360 static inline HRESULT ICredentialProvider_GetFieldDescriptorCount(ICredentialProvider* This,DWORD *pdwCount) {
   1361     return This->lpVtbl->GetFieldDescriptorCount(This,pdwCount);
   1362 }
   1363 static inline HRESULT ICredentialProvider_GetFieldDescriptorAt(ICredentialProvider* This,DWORD dwIndex,CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR **ppcpfd) {
   1364     return This->lpVtbl->GetFieldDescriptorAt(This,dwIndex,ppcpfd);
   1365 }
   1366 static inline HRESULT ICredentialProvider_GetCredentialCount(ICredentialProvider* This,DWORD *pdwCount,DWORD *pdwDefault,WINBOOL *pbAutoLogonWithDefault) {
   1367     return This->lpVtbl->GetCredentialCount(This,pdwCount,pdwDefault,pbAutoLogonWithDefault);
   1368 }
   1369 static inline HRESULT ICredentialProvider_GetCredentialAt(ICredentialProvider* This,DWORD dwIndex,ICredentialProviderCredential **ppcpc) {
   1370     return This->lpVtbl->GetCredentialAt(This,dwIndex,ppcpc);
   1371 }
   1372 #endif
   1373 #endif
   1374 
   1375 #endif
   1376 
   1377 
   1378 #endif  /* __ICredentialProvider_INTERFACE_DEFINED__ */
   1379 
   1380 /*****************************************************************************
   1381  * ICredentialProviderEvents interface
   1382  */
   1383 #ifndef __ICredentialProviderEvents_INTERFACE_DEFINED__
   1384 #define __ICredentialProviderEvents_INTERFACE_DEFINED__
   1385 
   1386 DEFINE_GUID(IID_ICredentialProviderEvents, 0x34201e5a, 0xa787, 0x41a3, 0xa5,0xa4, 0xbd,0x6d,0xcf,0x2a,0x85,0x4e);
   1387 #if defined(__cplusplus) && !defined(CINTERFACE)
   1388 MIDL_INTERFACE("34201e5a-a787-41a3-a5a4-bd6dcf2a854e")
   1389 ICredentialProviderEvents : public IUnknown
   1390 {
   1391     virtual HRESULT STDMETHODCALLTYPE CredentialsChanged(
   1392         UINT_PTR upAdviseContext) = 0;
   1393 
   1394 };
   1395 #ifdef __CRT_UUID_DECL
   1396 __CRT_UUID_DECL(ICredentialProviderEvents, 0x34201e5a, 0xa787, 0x41a3, 0xa5,0xa4, 0xbd,0x6d,0xcf,0x2a,0x85,0x4e)
   1397 #endif
   1398 #else
   1399 typedef struct ICredentialProviderEventsVtbl {
   1400     BEGIN_INTERFACE
   1401 
   1402     /*** IUnknown methods ***/
   1403     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1404         ICredentialProviderEvents *This,
   1405         REFIID riid,
   1406         void **ppvObject);
   1407 
   1408     ULONG (STDMETHODCALLTYPE *AddRef)(
   1409         ICredentialProviderEvents *This);
   1410 
   1411     ULONG (STDMETHODCALLTYPE *Release)(
   1412         ICredentialProviderEvents *This);
   1413 
   1414     /*** ICredentialProviderEvents methods ***/
   1415     HRESULT (STDMETHODCALLTYPE *CredentialsChanged)(
   1416         ICredentialProviderEvents *This,
   1417         UINT_PTR upAdviseContext);
   1418 
   1419     END_INTERFACE
   1420 } ICredentialProviderEventsVtbl;
   1421 
   1422 interface ICredentialProviderEvents {
   1423     CONST_VTBL ICredentialProviderEventsVtbl* lpVtbl;
   1424 };
   1425 
   1426 #ifdef COBJMACROS
   1427 #ifndef WIDL_C_INLINE_WRAPPERS
   1428 /*** IUnknown methods ***/
   1429 #define ICredentialProviderEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1430 #define ICredentialProviderEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
   1431 #define ICredentialProviderEvents_Release(This) (This)->lpVtbl->Release(This)
   1432 /*** ICredentialProviderEvents methods ***/
   1433 #define ICredentialProviderEvents_CredentialsChanged(This,upAdviseContext) (This)->lpVtbl->CredentialsChanged(This,upAdviseContext)
   1434 #else
   1435 /*** IUnknown methods ***/
   1436 static inline HRESULT ICredentialProviderEvents_QueryInterface(ICredentialProviderEvents* This,REFIID riid,void **ppvObject) {
   1437     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1438 }
   1439 static inline ULONG ICredentialProviderEvents_AddRef(ICredentialProviderEvents* This) {
   1440     return This->lpVtbl->AddRef(This);
   1441 }
   1442 static inline ULONG ICredentialProviderEvents_Release(ICredentialProviderEvents* This) {
   1443     return This->lpVtbl->Release(This);
   1444 }
   1445 /*** ICredentialProviderEvents methods ***/
   1446 static inline HRESULT ICredentialProviderEvents_CredentialsChanged(ICredentialProviderEvents* This,UINT_PTR upAdviseContext) {
   1447     return This->lpVtbl->CredentialsChanged(This,upAdviseContext);
   1448 }
   1449 #endif
   1450 #endif
   1451 
   1452 #endif
   1453 
   1454 
   1455 #endif  /* __ICredentialProviderEvents_INTERFACE_DEFINED__ */
   1456 
   1457 /*****************************************************************************
   1458  * ICredentialProviderFilter interface
   1459  */
   1460 #ifndef __ICredentialProviderFilter_INTERFACE_DEFINED__
   1461 #define __ICredentialProviderFilter_INTERFACE_DEFINED__
   1462 
   1463 DEFINE_GUID(IID_ICredentialProviderFilter, 0xa5da53f9, 0xd475, 0x4080, 0xa1,0x20, 0x91,0x0c,0x4a,0x73,0x98,0x80);
   1464 #if defined(__cplusplus) && !defined(CINTERFACE)
   1465 MIDL_INTERFACE("a5da53f9-d475-4080-a120-910c4a739880")
   1466 ICredentialProviderFilter : public IUnknown
   1467 {
   1468     virtual HRESULT STDMETHODCALLTYPE Filter(
   1469         CREDENTIAL_PROVIDER_USAGE_SCENARIO cpus,
   1470         DWORD dwFlags,
   1471         GUID *rgclsidProviders,
   1472         WINBOOL *rgbAllow,
   1473         DWORD cProviders) = 0;
   1474 
   1475     virtual HRESULT STDMETHODCALLTYPE UpdateRemoteCredential(
   1476         const CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION *pcpcsIn,
   1477         CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION *pcpcsOut) = 0;
   1478 
   1479 };
   1480 #ifdef __CRT_UUID_DECL
   1481 __CRT_UUID_DECL(ICredentialProviderFilter, 0xa5da53f9, 0xd475, 0x4080, 0xa1,0x20, 0x91,0x0c,0x4a,0x73,0x98,0x80)
   1482 #endif
   1483 #else
   1484 typedef struct ICredentialProviderFilterVtbl {
   1485     BEGIN_INTERFACE
   1486 
   1487     /*** IUnknown methods ***/
   1488     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1489         ICredentialProviderFilter *This,
   1490         REFIID riid,
   1491         void **ppvObject);
   1492 
   1493     ULONG (STDMETHODCALLTYPE *AddRef)(
   1494         ICredentialProviderFilter *This);
   1495 
   1496     ULONG (STDMETHODCALLTYPE *Release)(
   1497         ICredentialProviderFilter *This);
   1498 
   1499     /*** ICredentialProviderFilter methods ***/
   1500     HRESULT (STDMETHODCALLTYPE *Filter)(
   1501         ICredentialProviderFilter *This,
   1502         CREDENTIAL_PROVIDER_USAGE_SCENARIO cpus,
   1503         DWORD dwFlags,
   1504         GUID *rgclsidProviders,
   1505         WINBOOL *rgbAllow,
   1506         DWORD cProviders);
   1507 
   1508     HRESULT (STDMETHODCALLTYPE *UpdateRemoteCredential)(
   1509         ICredentialProviderFilter *This,
   1510         const CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION *pcpcsIn,
   1511         CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION *pcpcsOut);
   1512 
   1513     END_INTERFACE
   1514 } ICredentialProviderFilterVtbl;
   1515 
   1516 interface ICredentialProviderFilter {
   1517     CONST_VTBL ICredentialProviderFilterVtbl* lpVtbl;
   1518 };
   1519 
   1520 #ifdef COBJMACROS
   1521 #ifndef WIDL_C_INLINE_WRAPPERS
   1522 /*** IUnknown methods ***/
   1523 #define ICredentialProviderFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1524 #define ICredentialProviderFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   1525 #define ICredentialProviderFilter_Release(This) (This)->lpVtbl->Release(This)
   1526 /*** ICredentialProviderFilter methods ***/
   1527 #define ICredentialProviderFilter_Filter(This,cpus,dwFlags,rgclsidProviders,rgbAllow,cProviders) (This)->lpVtbl->Filter(This,cpus,dwFlags,rgclsidProviders,rgbAllow,cProviders)
   1528 #define ICredentialProviderFilter_UpdateRemoteCredential(This,pcpcsIn,pcpcsOut) (This)->lpVtbl->UpdateRemoteCredential(This,pcpcsIn,pcpcsOut)
   1529 #else
   1530 /*** IUnknown methods ***/
   1531 static inline HRESULT ICredentialProviderFilter_QueryInterface(ICredentialProviderFilter* This,REFIID riid,void **ppvObject) {
   1532     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1533 }
   1534 static inline ULONG ICredentialProviderFilter_AddRef(ICredentialProviderFilter* This) {
   1535     return This->lpVtbl->AddRef(This);
   1536 }
   1537 static inline ULONG ICredentialProviderFilter_Release(ICredentialProviderFilter* This) {
   1538     return This->lpVtbl->Release(This);
   1539 }
   1540 /*** ICredentialProviderFilter methods ***/
   1541 static inline HRESULT ICredentialProviderFilter_Filter(ICredentialProviderFilter* This,CREDENTIAL_PROVIDER_USAGE_SCENARIO cpus,DWORD dwFlags,GUID *rgclsidProviders,WINBOOL *rgbAllow,DWORD cProviders) {
   1542     return This->lpVtbl->Filter(This,cpus,dwFlags,rgclsidProviders,rgbAllow,cProviders);
   1543 }
   1544 static inline HRESULT ICredentialProviderFilter_UpdateRemoteCredential(ICredentialProviderFilter* This,const CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION *pcpcsIn,CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION *pcpcsOut) {
   1545     return This->lpVtbl->UpdateRemoteCredential(This,pcpcsIn,pcpcsOut);
   1546 }
   1547 #endif
   1548 #endif
   1549 
   1550 #endif
   1551 
   1552 
   1553 #endif  /* __ICredentialProviderFilter_INTERFACE_DEFINED__ */
   1554 
   1555 #if (NTDDI_VERSION >= NTDDI_WIN8)
   1556 /*****************************************************************************
   1557  * ICredentialProviderCredential2 interface
   1558  */
   1559 #ifndef __ICredentialProviderCredential2_INTERFACE_DEFINED__
   1560 #define __ICredentialProviderCredential2_INTERFACE_DEFINED__
   1561 
   1562 DEFINE_GUID(IID_ICredentialProviderCredential2, 0xfd672c54, 0x40ea, 0x4d6e, 0x9b,0x49, 0xcf,0xb1,0xa7,0x50,0x7b,0xd7);
   1563 #if defined(__cplusplus) && !defined(CINTERFACE)
   1564 MIDL_INTERFACE("fd672c54-40ea-4d6e-9b49-cfb1a7507bd7")
   1565 ICredentialProviderCredential2 : public ICredentialProviderCredential
   1566 {
   1567     virtual HRESULT STDMETHODCALLTYPE GetUserSid(
   1568         LPWSTR *sid) = 0;
   1569 
   1570 };
   1571 #ifdef __CRT_UUID_DECL
   1572 __CRT_UUID_DECL(ICredentialProviderCredential2, 0xfd672c54, 0x40ea, 0x4d6e, 0x9b,0x49, 0xcf,0xb1,0xa7,0x50,0x7b,0xd7)
   1573 #endif
   1574 #else
   1575 typedef struct ICredentialProviderCredential2Vtbl {
   1576     BEGIN_INTERFACE
   1577 
   1578     /*** IUnknown methods ***/
   1579     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1580         ICredentialProviderCredential2 *This,
   1581         REFIID riid,
   1582         void **ppvObject);
   1583 
   1584     ULONG (STDMETHODCALLTYPE *AddRef)(
   1585         ICredentialProviderCredential2 *This);
   1586 
   1587     ULONG (STDMETHODCALLTYPE *Release)(
   1588         ICredentialProviderCredential2 *This);
   1589 
   1590     /*** ICredentialProviderCredential methods ***/
   1591     HRESULT (STDMETHODCALLTYPE *Advise)(
   1592         ICredentialProviderCredential2 *This,
   1593         ICredentialProviderCredentialEvents *pcpce);
   1594 
   1595     HRESULT (STDMETHODCALLTYPE *UnAdvise)(
   1596         ICredentialProviderCredential2 *This);
   1597 
   1598     HRESULT (STDMETHODCALLTYPE *SetSelected)(
   1599         ICredentialProviderCredential2 *This,
   1600         WINBOOL *pbAutoLogon);
   1601 
   1602     HRESULT (STDMETHODCALLTYPE *SetDeselected)(
   1603         ICredentialProviderCredential2 *This);
   1604 
   1605     HRESULT (STDMETHODCALLTYPE *GetFieldState)(
   1606         ICredentialProviderCredential2 *This,
   1607         DWORD dwFieldID,
   1608         CREDENTIAL_PROVIDER_FIELD_STATE *pcpfs,
   1609         CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE *pcpfis);
   1610 
   1611     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   1612         ICredentialProviderCredential2 *This,
   1613         DWORD dwFieldID,
   1614         LPWSTR *ppsz);
   1615 
   1616     HRESULT (STDMETHODCALLTYPE *GetBitmapValue)(
   1617         ICredentialProviderCredential2 *This,
   1618         DWORD dwFieldID,
   1619         HBITMAP *phbmp);
   1620 
   1621     HRESULT (STDMETHODCALLTYPE *GetCheckboxValue)(
   1622         ICredentialProviderCredential2 *This,
   1623         DWORD dwFieldID,
   1624         WINBOOL *pbChecked,
   1625         LPWSTR *ppszLabel);
   1626 
   1627     HRESULT (STDMETHODCALLTYPE *GetSubmitButtonValue)(
   1628         ICredentialProviderCredential2 *This,
   1629         DWORD dwFieldID,
   1630         DWORD *pdwAdjacentTo);
   1631 
   1632     HRESULT (STDMETHODCALLTYPE *GetComboBoxValueCount)(
   1633         ICredentialProviderCredential2 *This,
   1634         DWORD dwFieldID,
   1635         DWORD *pcItems,
   1636         DWORD *pdwSelectedItem);
   1637 
   1638     HRESULT (STDMETHODCALLTYPE *GetComboBoxValueAt)(
   1639         ICredentialProviderCredential2 *This,
   1640         DWORD dwFieldID,
   1641         DWORD dwItem,
   1642         LPWSTR *ppszItem);
   1643 
   1644     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
   1645         ICredentialProviderCredential2 *This,
   1646         DWORD dwFieldID,
   1647         LPCWSTR psz);
   1648 
   1649     HRESULT (STDMETHODCALLTYPE *SetCheckboxValue)(
   1650         ICredentialProviderCredential2 *This,
   1651         DWORD dwFieldID,
   1652         WINBOOL bChecked);
   1653 
   1654     HRESULT (STDMETHODCALLTYPE *SetComboBoxSelectedValue)(
   1655         ICredentialProviderCredential2 *This,
   1656         DWORD dwFieldID,
   1657         DWORD dwSelectedItem);
   1658 
   1659     HRESULT (STDMETHODCALLTYPE *CommandLinkClicked)(
   1660         ICredentialProviderCredential2 *This,
   1661         DWORD dwFieldID);
   1662 
   1663     HRESULT (STDMETHODCALLTYPE *GetSerialization)(
   1664         ICredentialProviderCredential2 *This,
   1665         CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE *pcpgsr,
   1666         CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION *pcpcs,
   1667         LPWSTR *ppszOptionalStatusText,
   1668         CREDENTIAL_PROVIDER_STATUS_ICON *pcpsiOptionalStatusIcon);
   1669 
   1670     HRESULT (STDMETHODCALLTYPE *ReportResult)(
   1671         ICredentialProviderCredential2 *This,
   1672         NTSTATUS ntsStatus,
   1673         NTSTATUS ntsSubstatus,
   1674         LPWSTR *ppszOptionalStatusText,
   1675         CREDENTIAL_PROVIDER_STATUS_ICON *pcpsiOptionalStatusIcon);
   1676 
   1677     /*** ICredentialProviderCredential2 methods ***/
   1678     HRESULT (STDMETHODCALLTYPE *GetUserSid)(
   1679         ICredentialProviderCredential2 *This,
   1680         LPWSTR *sid);
   1681 
   1682     END_INTERFACE
   1683 } ICredentialProviderCredential2Vtbl;
   1684 
   1685 interface ICredentialProviderCredential2 {
   1686     CONST_VTBL ICredentialProviderCredential2Vtbl* lpVtbl;
   1687 };
   1688 
   1689 #ifdef COBJMACROS
   1690 #ifndef WIDL_C_INLINE_WRAPPERS
   1691 /*** IUnknown methods ***/
   1692 #define ICredentialProviderCredential2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1693 #define ICredentialProviderCredential2_AddRef(This) (This)->lpVtbl->AddRef(This)
   1694 #define ICredentialProviderCredential2_Release(This) (This)->lpVtbl->Release(This)
   1695 /*** ICredentialProviderCredential methods ***/
   1696 #define ICredentialProviderCredential2_Advise(This,pcpce) (This)->lpVtbl->Advise(This,pcpce)
   1697 #define ICredentialProviderCredential2_UnAdvise(This) (This)->lpVtbl->UnAdvise(This)
   1698 #define ICredentialProviderCredential2_SetSelected(This,pbAutoLogon) (This)->lpVtbl->SetSelected(This,pbAutoLogon)
   1699 #define ICredentialProviderCredential2_SetDeselected(This) (This)->lpVtbl->SetDeselected(This)
   1700 #define ICredentialProviderCredential2_GetFieldState(This,dwFieldID,pcpfs,pcpfis) (This)->lpVtbl->GetFieldState(This,dwFieldID,pcpfs,pcpfis)
   1701 #define ICredentialProviderCredential2_GetStringValue(This,dwFieldID,ppsz) (This)->lpVtbl->GetStringValue(This,dwFieldID,ppsz)
   1702 #define ICredentialProviderCredential2_GetBitmapValue(This,dwFieldID,phbmp) (This)->lpVtbl->GetBitmapValue(This,dwFieldID,phbmp)
   1703 #define ICredentialProviderCredential2_GetCheckboxValue(This,dwFieldID,pbChecked,ppszLabel) (This)->lpVtbl->GetCheckboxValue(This,dwFieldID,pbChecked,ppszLabel)
   1704 #define ICredentialProviderCredential2_GetSubmitButtonValue(This,dwFieldID,pdwAdjacentTo) (This)->lpVtbl->GetSubmitButtonValue(This,dwFieldID,pdwAdjacentTo)
   1705 #define ICredentialProviderCredential2_GetComboBoxValueCount(This,dwFieldID,pcItems,pdwSelectedItem) (This)->lpVtbl->GetComboBoxValueCount(This,dwFieldID,pcItems,pdwSelectedItem)
   1706 #define ICredentialProviderCredential2_GetComboBoxValueAt(This,dwFieldID,dwItem,ppszItem) (This)->lpVtbl->GetComboBoxValueAt(This,dwFieldID,dwItem,ppszItem)
   1707 #define ICredentialProviderCredential2_SetStringValue(This,dwFieldID,psz) (This)->lpVtbl->SetStringValue(This,dwFieldID,psz)
   1708 #define ICredentialProviderCredential2_SetCheckboxValue(This,dwFieldID,bChecked) (This)->lpVtbl->SetCheckboxValue(This,dwFieldID,bChecked)
   1709 #define ICredentialProviderCredential2_SetComboBoxSelectedValue(This,dwFieldID,dwSelectedItem) (This)->lpVtbl->SetComboBoxSelectedValue(This,dwFieldID,dwSelectedItem)
   1710 #define ICredentialProviderCredential2_CommandLinkClicked(This,dwFieldID) (This)->lpVtbl->CommandLinkClicked(This,dwFieldID)
   1711 #define ICredentialProviderCredential2_GetSerialization(This,pcpgsr,pcpcs,ppszOptionalStatusText,pcpsiOptionalStatusIcon) (This)->lpVtbl->GetSerialization(This,pcpgsr,pcpcs,ppszOptionalStatusText,pcpsiOptionalStatusIcon)
   1712 #define ICredentialProviderCredential2_ReportResult(This,ntsStatus,ntsSubstatus,ppszOptionalStatusText,pcpsiOptionalStatusIcon) (This)->lpVtbl->ReportResult(This,ntsStatus,ntsSubstatus,ppszOptionalStatusText,pcpsiOptionalStatusIcon)
   1713 /*** ICredentialProviderCredential2 methods ***/
   1714 #define ICredentialProviderCredential2_GetUserSid(This,sid) (This)->lpVtbl->GetUserSid(This,sid)
   1715 #else
   1716 /*** IUnknown methods ***/
   1717 static inline HRESULT ICredentialProviderCredential2_QueryInterface(ICredentialProviderCredential2* This,REFIID riid,void **ppvObject) {
   1718     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1719 }
   1720 static inline ULONG ICredentialProviderCredential2_AddRef(ICredentialProviderCredential2* This) {
   1721     return This->lpVtbl->AddRef(This);
   1722 }
   1723 static inline ULONG ICredentialProviderCredential2_Release(ICredentialProviderCredential2* This) {
   1724     return This->lpVtbl->Release(This);
   1725 }
   1726 /*** ICredentialProviderCredential methods ***/
   1727 static inline HRESULT ICredentialProviderCredential2_Advise(ICredentialProviderCredential2* This,ICredentialProviderCredentialEvents *pcpce) {
   1728     return This->lpVtbl->Advise(This,pcpce);
   1729 }
   1730 static inline HRESULT ICredentialProviderCredential2_UnAdvise(ICredentialProviderCredential2* This) {
   1731     return This->lpVtbl->UnAdvise(This);
   1732 }
   1733 static inline HRESULT ICredentialProviderCredential2_SetSelected(ICredentialProviderCredential2* This,WINBOOL *pbAutoLogon) {
   1734     return This->lpVtbl->SetSelected(This,pbAutoLogon);
   1735 }
   1736 static inline HRESULT ICredentialProviderCredential2_SetDeselected(ICredentialProviderCredential2* This) {
   1737     return This->lpVtbl->SetDeselected(This);
   1738 }
   1739 static inline HRESULT ICredentialProviderCredential2_GetFieldState(ICredentialProviderCredential2* This,DWORD dwFieldID,CREDENTIAL_PROVIDER_FIELD_STATE *pcpfs,CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE *pcpfis) {
   1740     return This->lpVtbl->GetFieldState(This,dwFieldID,pcpfs,pcpfis);
   1741 }
   1742 static inline HRESULT ICredentialProviderCredential2_GetStringValue(ICredentialProviderCredential2* This,DWORD dwFieldID,LPWSTR *ppsz) {
   1743     return This->lpVtbl->GetStringValue(This,dwFieldID,ppsz);
   1744 }
   1745 static inline HRESULT ICredentialProviderCredential2_GetBitmapValue(ICredentialProviderCredential2* This,DWORD dwFieldID,HBITMAP *phbmp) {
   1746     return This->lpVtbl->GetBitmapValue(This,dwFieldID,phbmp);
   1747 }
   1748 static inline HRESULT ICredentialProviderCredential2_GetCheckboxValue(ICredentialProviderCredential2* This,DWORD dwFieldID,WINBOOL *pbChecked,LPWSTR *ppszLabel) {
   1749     return This->lpVtbl->GetCheckboxValue(This,dwFieldID,pbChecked,ppszLabel);
   1750 }
   1751 static inline HRESULT ICredentialProviderCredential2_GetSubmitButtonValue(ICredentialProviderCredential2* This,DWORD dwFieldID,DWORD *pdwAdjacentTo) {
   1752     return This->lpVtbl->GetSubmitButtonValue(This,dwFieldID,pdwAdjacentTo);
   1753 }
   1754 static inline HRESULT ICredentialProviderCredential2_GetComboBoxValueCount(ICredentialProviderCredential2* This,DWORD dwFieldID,DWORD *pcItems,DWORD *pdwSelectedItem) {
   1755     return This->lpVtbl->GetComboBoxValueCount(This,dwFieldID,pcItems,pdwSelectedItem);
   1756 }
   1757 static inline HRESULT ICredentialProviderCredential2_GetComboBoxValueAt(ICredentialProviderCredential2* This,DWORD dwFieldID,DWORD dwItem,LPWSTR *ppszItem) {
   1758     return This->lpVtbl->GetComboBoxValueAt(This,dwFieldID,dwItem,ppszItem);
   1759 }
   1760 static inline HRESULT ICredentialProviderCredential2_SetStringValue(ICredentialProviderCredential2* This,DWORD dwFieldID,LPCWSTR psz) {
   1761     return This->lpVtbl->SetStringValue(This,dwFieldID,psz);
   1762 }
   1763 static inline HRESULT ICredentialProviderCredential2_SetCheckboxValue(ICredentialProviderCredential2* This,DWORD dwFieldID,WINBOOL bChecked) {
   1764     return This->lpVtbl->SetCheckboxValue(This,dwFieldID,bChecked);
   1765 }
   1766 static inline HRESULT ICredentialProviderCredential2_SetComboBoxSelectedValue(ICredentialProviderCredential2* This,DWORD dwFieldID,DWORD dwSelectedItem) {
   1767     return This->lpVtbl->SetComboBoxSelectedValue(This,dwFieldID,dwSelectedItem);
   1768 }
   1769 static inline HRESULT ICredentialProviderCredential2_CommandLinkClicked(ICredentialProviderCredential2* This,DWORD dwFieldID) {
   1770     return This->lpVtbl->CommandLinkClicked(This,dwFieldID);
   1771 }
   1772 static inline HRESULT ICredentialProviderCredential2_GetSerialization(ICredentialProviderCredential2* This,CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE *pcpgsr,CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION *pcpcs,LPWSTR *ppszOptionalStatusText,CREDENTIAL_PROVIDER_STATUS_ICON *pcpsiOptionalStatusIcon) {
   1773     return This->lpVtbl->GetSerialization(This,pcpgsr,pcpcs,ppszOptionalStatusText,pcpsiOptionalStatusIcon);
   1774 }
   1775 static inline HRESULT ICredentialProviderCredential2_ReportResult(ICredentialProviderCredential2* This,NTSTATUS ntsStatus,NTSTATUS ntsSubstatus,LPWSTR *ppszOptionalStatusText,CREDENTIAL_PROVIDER_STATUS_ICON *pcpsiOptionalStatusIcon) {
   1776     return This->lpVtbl->ReportResult(This,ntsStatus,ntsSubstatus,ppszOptionalStatusText,pcpsiOptionalStatusIcon);
   1777 }
   1778 /*** ICredentialProviderCredential2 methods ***/
   1779 static inline HRESULT ICredentialProviderCredential2_GetUserSid(ICredentialProviderCredential2* This,LPWSTR *sid) {
   1780     return This->lpVtbl->GetUserSid(This,sid);
   1781 }
   1782 #endif
   1783 #endif
   1784 
   1785 #endif
   1786 
   1787 
   1788 #endif  /* __ICredentialProviderCredential2_INTERFACE_DEFINED__ */
   1789 
   1790 /*****************************************************************************
   1791  * ICredentialProviderCredentialWithFieldOptions interface
   1792  */
   1793 #ifndef __ICredentialProviderCredentialWithFieldOptions_INTERFACE_DEFINED__
   1794 #define __ICredentialProviderCredentialWithFieldOptions_INTERFACE_DEFINED__
   1795 
   1796 DEFINE_GUID(IID_ICredentialProviderCredentialWithFieldOptions, 0xdbc6fb30, 0xc843, 0x49e3, 0xa6,0x45, 0x57,0x3e,0x6f,0x39,0x44,0x6a);
   1797 #if defined(__cplusplus) && !defined(CINTERFACE)
   1798 MIDL_INTERFACE("dbc6fb30-c843-49e3-a645-573e6f39446a")
   1799 ICredentialProviderCredentialWithFieldOptions : public IUnknown
   1800 {
   1801     virtual HRESULT STDMETHODCALLTYPE GetFieldOptions(
   1802         DWORD fieldID,
   1803         CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS *options) = 0;
   1804 
   1805 };
   1806 #ifdef __CRT_UUID_DECL
   1807 __CRT_UUID_DECL(ICredentialProviderCredentialWithFieldOptions, 0xdbc6fb30, 0xc843, 0x49e3, 0xa6,0x45, 0x57,0x3e,0x6f,0x39,0x44,0x6a)
   1808 #endif
   1809 #else
   1810 typedef struct ICredentialProviderCredentialWithFieldOptionsVtbl {
   1811     BEGIN_INTERFACE
   1812 
   1813     /*** IUnknown methods ***/
   1814     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1815         ICredentialProviderCredentialWithFieldOptions *This,
   1816         REFIID riid,
   1817         void **ppvObject);
   1818 
   1819     ULONG (STDMETHODCALLTYPE *AddRef)(
   1820         ICredentialProviderCredentialWithFieldOptions *This);
   1821 
   1822     ULONG (STDMETHODCALLTYPE *Release)(
   1823         ICredentialProviderCredentialWithFieldOptions *This);
   1824 
   1825     /*** ICredentialProviderCredentialWithFieldOptions methods ***/
   1826     HRESULT (STDMETHODCALLTYPE *GetFieldOptions)(
   1827         ICredentialProviderCredentialWithFieldOptions *This,
   1828         DWORD fieldID,
   1829         CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS *options);
   1830 
   1831     END_INTERFACE
   1832 } ICredentialProviderCredentialWithFieldOptionsVtbl;
   1833 
   1834 interface ICredentialProviderCredentialWithFieldOptions {
   1835     CONST_VTBL ICredentialProviderCredentialWithFieldOptionsVtbl* lpVtbl;
   1836 };
   1837 
   1838 #ifdef COBJMACROS
   1839 #ifndef WIDL_C_INLINE_WRAPPERS
   1840 /*** IUnknown methods ***/
   1841 #define ICredentialProviderCredentialWithFieldOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1842 #define ICredentialProviderCredentialWithFieldOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
   1843 #define ICredentialProviderCredentialWithFieldOptions_Release(This) (This)->lpVtbl->Release(This)
   1844 /*** ICredentialProviderCredentialWithFieldOptions methods ***/
   1845 #define ICredentialProviderCredentialWithFieldOptions_GetFieldOptions(This,fieldID,options) (This)->lpVtbl->GetFieldOptions(This,fieldID,options)
   1846 #else
   1847 /*** IUnknown methods ***/
   1848 static inline HRESULT ICredentialProviderCredentialWithFieldOptions_QueryInterface(ICredentialProviderCredentialWithFieldOptions* This,REFIID riid,void **ppvObject) {
   1849     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1850 }
   1851 static inline ULONG ICredentialProviderCredentialWithFieldOptions_AddRef(ICredentialProviderCredentialWithFieldOptions* This) {
   1852     return This->lpVtbl->AddRef(This);
   1853 }
   1854 static inline ULONG ICredentialProviderCredentialWithFieldOptions_Release(ICredentialProviderCredentialWithFieldOptions* This) {
   1855     return This->lpVtbl->Release(This);
   1856 }
   1857 /*** ICredentialProviderCredentialWithFieldOptions methods ***/
   1858 static inline HRESULT ICredentialProviderCredentialWithFieldOptions_GetFieldOptions(ICredentialProviderCredentialWithFieldOptions* This,DWORD fieldID,CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS *options) {
   1859     return This->lpVtbl->GetFieldOptions(This,fieldID,options);
   1860 }
   1861 #endif
   1862 #endif
   1863 
   1864 #endif
   1865 
   1866 
   1867 #endif  /* __ICredentialProviderCredentialWithFieldOptions_INTERFACE_DEFINED__ */
   1868 
   1869 /*****************************************************************************
   1870  * ICredentialProviderCredentialEvents2 interface
   1871  */
   1872 #ifndef __ICredentialProviderCredentialEvents2_INTERFACE_DEFINED__
   1873 #define __ICredentialProviderCredentialEvents2_INTERFACE_DEFINED__
   1874 
   1875 DEFINE_GUID(IID_ICredentialProviderCredentialEvents2, 0xb53c00b6, 0x9922, 0x4b78, 0xb1,0xf4, 0xdd,0xfe,0x77,0x4d,0xc3,0x9b);
   1876 #if defined(__cplusplus) && !defined(CINTERFACE)
   1877 MIDL_INTERFACE("b53c00b6-9922-4b78-b1f4-ddfe774dc39b")
   1878 ICredentialProviderCredentialEvents2 : public ICredentialProviderCredentialEvents
   1879 {
   1880     virtual HRESULT STDMETHODCALLTYPE BeginFieldUpdates(
   1881         ) = 0;
   1882 
   1883     virtual HRESULT STDMETHODCALLTYPE EndFieldUpdates(
   1884         ) = 0;
   1885 
   1886     virtual HRESULT STDMETHODCALLTYPE SetFieldOptions(
   1887         ICredentialProviderCredential *credential,
   1888         DWORD fieldID,
   1889         CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS options) = 0;
   1890 
   1891 };
   1892 #ifdef __CRT_UUID_DECL
   1893 __CRT_UUID_DECL(ICredentialProviderCredentialEvents2, 0xb53c00b6, 0x9922, 0x4b78, 0xb1,0xf4, 0xdd,0xfe,0x77,0x4d,0xc3,0x9b)
   1894 #endif
   1895 #else
   1896 typedef struct ICredentialProviderCredentialEvents2Vtbl {
   1897     BEGIN_INTERFACE
   1898 
   1899     /*** IUnknown methods ***/
   1900     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1901         ICredentialProviderCredentialEvents2 *This,
   1902         REFIID riid,
   1903         void **ppvObject);
   1904 
   1905     ULONG (STDMETHODCALLTYPE *AddRef)(
   1906         ICredentialProviderCredentialEvents2 *This);
   1907 
   1908     ULONG (STDMETHODCALLTYPE *Release)(
   1909         ICredentialProviderCredentialEvents2 *This);
   1910 
   1911     /*** ICredentialProviderCredentialEvents methods ***/
   1912     HRESULT (STDMETHODCALLTYPE *SetFieldState)(
   1913         ICredentialProviderCredentialEvents2 *This,
   1914         ICredentialProviderCredential *pcpc,
   1915         DWORD dwFieldID,
   1916         CREDENTIAL_PROVIDER_FIELD_STATE cpfs);
   1917 
   1918     HRESULT (STDMETHODCALLTYPE *SetFieldInteractiveState)(
   1919         ICredentialProviderCredentialEvents2 *This,
   1920         ICredentialProviderCredential *pcpc,
   1921         DWORD dwFieldID,
   1922         CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE cpfis);
   1923 
   1924     HRESULT (STDMETHODCALLTYPE *SetFieldString)(
   1925         ICredentialProviderCredentialEvents2 *This,
   1926         ICredentialProviderCredential *pcpc,
   1927         DWORD dwFieldID,
   1928         LPCWSTR psz);
   1929 
   1930     HRESULT (STDMETHODCALLTYPE *SetFieldCheckbox)(
   1931         ICredentialProviderCredentialEvents2 *This,
   1932         ICredentialProviderCredential *pcpc,
   1933         DWORD dwFieldID,
   1934         WINBOOL bChecked,
   1935         LPCWSTR pszLabel);
   1936 
   1937     HRESULT (STDMETHODCALLTYPE *SetFieldBitmap)(
   1938         ICredentialProviderCredentialEvents2 *This,
   1939         ICredentialProviderCredential *pcpc,
   1940         DWORD dwFieldID,
   1941         HBITMAP hbmp);
   1942 
   1943     HRESULT (STDMETHODCALLTYPE *SetFieldComboBoxSelectedItem)(
   1944         ICredentialProviderCredentialEvents2 *This,
   1945         ICredentialProviderCredential *pcpc,
   1946         DWORD dwFieldID,
   1947         DWORD dwSelectedItem);
   1948 
   1949     HRESULT (STDMETHODCALLTYPE *DeleteFieldComboBoxItem)(
   1950         ICredentialProviderCredentialEvents2 *This,
   1951         ICredentialProviderCredential *pcpc,
   1952         DWORD dwFieldID,
   1953         DWORD dwItem);
   1954 
   1955     HRESULT (STDMETHODCALLTYPE *AppendFieldComboBoxItem)(
   1956         ICredentialProviderCredentialEvents2 *This,
   1957         ICredentialProviderCredential *pcpc,
   1958         DWORD dwFieldID,
   1959         LPCWSTR pszItem);
   1960 
   1961     HRESULT (STDMETHODCALLTYPE *SetFieldSubmitButton)(
   1962         ICredentialProviderCredentialEvents2 *This,
   1963         ICredentialProviderCredential *pcpc,
   1964         DWORD dwFieldID,
   1965         DWORD dwAdjacentTo);
   1966 
   1967     HRESULT (STDMETHODCALLTYPE *OnCreatingWindow)(
   1968         ICredentialProviderCredentialEvents2 *This,
   1969         HWND *phwndOwner);
   1970 
   1971     /*** ICredentialProviderCredentialEvents2 methods ***/
   1972     HRESULT (STDMETHODCALLTYPE *BeginFieldUpdates)(
   1973         ICredentialProviderCredentialEvents2 *This);
   1974 
   1975     HRESULT (STDMETHODCALLTYPE *EndFieldUpdates)(
   1976         ICredentialProviderCredentialEvents2 *This);
   1977 
   1978     HRESULT (STDMETHODCALLTYPE *SetFieldOptions)(
   1979         ICredentialProviderCredentialEvents2 *This,
   1980         ICredentialProviderCredential *credential,
   1981         DWORD fieldID,
   1982         CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS options);
   1983 
   1984     END_INTERFACE
   1985 } ICredentialProviderCredentialEvents2Vtbl;
   1986 
   1987 interface ICredentialProviderCredentialEvents2 {
   1988     CONST_VTBL ICredentialProviderCredentialEvents2Vtbl* lpVtbl;
   1989 };
   1990 
   1991 #ifdef COBJMACROS
   1992 #ifndef WIDL_C_INLINE_WRAPPERS
   1993 /*** IUnknown methods ***/
   1994 #define ICredentialProviderCredentialEvents2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1995 #define ICredentialProviderCredentialEvents2_AddRef(This) (This)->lpVtbl->AddRef(This)
   1996 #define ICredentialProviderCredentialEvents2_Release(This) (This)->lpVtbl->Release(This)
   1997 /*** ICredentialProviderCredentialEvents methods ***/
   1998 #define ICredentialProviderCredentialEvents2_SetFieldState(This,pcpc,dwFieldID,cpfs) (This)->lpVtbl->SetFieldState(This,pcpc,dwFieldID,cpfs)
   1999 #define ICredentialProviderCredentialEvents2_SetFieldInteractiveState(This,pcpc,dwFieldID,cpfis) (This)->lpVtbl->SetFieldInteractiveState(This,pcpc,dwFieldID,cpfis)
   2000 #define ICredentialProviderCredentialEvents2_SetFieldString(This,pcpc,dwFieldID,psz) (This)->lpVtbl->SetFieldString(This,pcpc,dwFieldID,psz)
   2001 #define ICredentialProviderCredentialEvents2_SetFieldCheckbox(This,pcpc,dwFieldID,bChecked,pszLabel) (This)->lpVtbl->SetFieldCheckbox(This,pcpc,dwFieldID,bChecked,pszLabel)
   2002 #define ICredentialProviderCredentialEvents2_SetFieldBitmap(This,pcpc,dwFieldID,hbmp) (This)->lpVtbl->SetFieldBitmap(This,pcpc,dwFieldID,hbmp)
   2003 #define ICredentialProviderCredentialEvents2_SetFieldComboBoxSelectedItem(This,pcpc,dwFieldID,dwSelectedItem) (This)->lpVtbl->SetFieldComboBoxSelectedItem(This,pcpc,dwFieldID,dwSelectedItem)
   2004 #define ICredentialProviderCredentialEvents2_DeleteFieldComboBoxItem(This,pcpc,dwFieldID,dwItem) (This)->lpVtbl->DeleteFieldComboBoxItem(This,pcpc,dwFieldID,dwItem)
   2005 #define ICredentialProviderCredentialEvents2_AppendFieldComboBoxItem(This,pcpc,dwFieldID,pszItem) (This)->lpVtbl->AppendFieldComboBoxItem(This,pcpc,dwFieldID,pszItem)
   2006 #define ICredentialProviderCredentialEvents2_SetFieldSubmitButton(This,pcpc,dwFieldID,dwAdjacentTo) (This)->lpVtbl->SetFieldSubmitButton(This,pcpc,dwFieldID,dwAdjacentTo)
   2007 #define ICredentialProviderCredentialEvents2_OnCreatingWindow(This,phwndOwner) (This)->lpVtbl->OnCreatingWindow(This,phwndOwner)
   2008 /*** ICredentialProviderCredentialEvents2 methods ***/
   2009 #define ICredentialProviderCredentialEvents2_BeginFieldUpdates(This) (This)->lpVtbl->BeginFieldUpdates(This)
   2010 #define ICredentialProviderCredentialEvents2_EndFieldUpdates(This) (This)->lpVtbl->EndFieldUpdates(This)
   2011 #define ICredentialProviderCredentialEvents2_SetFieldOptions(This,credential,fieldID,options) (This)->lpVtbl->SetFieldOptions(This,credential,fieldID,options)
   2012 #else
   2013 /*** IUnknown methods ***/
   2014 static inline HRESULT ICredentialProviderCredentialEvents2_QueryInterface(ICredentialProviderCredentialEvents2* This,REFIID riid,void **ppvObject) {
   2015     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2016 }
   2017 static inline ULONG ICredentialProviderCredentialEvents2_AddRef(ICredentialProviderCredentialEvents2* This) {
   2018     return This->lpVtbl->AddRef(This);
   2019 }
   2020 static inline ULONG ICredentialProviderCredentialEvents2_Release(ICredentialProviderCredentialEvents2* This) {
   2021     return This->lpVtbl->Release(This);
   2022 }
   2023 /*** ICredentialProviderCredentialEvents methods ***/
   2024 static inline HRESULT ICredentialProviderCredentialEvents2_SetFieldState(ICredentialProviderCredentialEvents2* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,CREDENTIAL_PROVIDER_FIELD_STATE cpfs) {
   2025     return This->lpVtbl->SetFieldState(This,pcpc,dwFieldID,cpfs);
   2026 }
   2027 static inline HRESULT ICredentialProviderCredentialEvents2_SetFieldInteractiveState(ICredentialProviderCredentialEvents2* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE cpfis) {
   2028     return This->lpVtbl->SetFieldInteractiveState(This,pcpc,dwFieldID,cpfis);
   2029 }
   2030 static inline HRESULT ICredentialProviderCredentialEvents2_SetFieldString(ICredentialProviderCredentialEvents2* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,LPCWSTR psz) {
   2031     return This->lpVtbl->SetFieldString(This,pcpc,dwFieldID,psz);
   2032 }
   2033 static inline HRESULT ICredentialProviderCredentialEvents2_SetFieldCheckbox(ICredentialProviderCredentialEvents2* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,WINBOOL bChecked,LPCWSTR pszLabel) {
   2034     return This->lpVtbl->SetFieldCheckbox(This,pcpc,dwFieldID,bChecked,pszLabel);
   2035 }
   2036 static inline HRESULT ICredentialProviderCredentialEvents2_SetFieldBitmap(ICredentialProviderCredentialEvents2* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,HBITMAP hbmp) {
   2037     return This->lpVtbl->SetFieldBitmap(This,pcpc,dwFieldID,hbmp);
   2038 }
   2039 static inline HRESULT ICredentialProviderCredentialEvents2_SetFieldComboBoxSelectedItem(ICredentialProviderCredentialEvents2* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,DWORD dwSelectedItem) {
   2040     return This->lpVtbl->SetFieldComboBoxSelectedItem(This,pcpc,dwFieldID,dwSelectedItem);
   2041 }
   2042 static inline HRESULT ICredentialProviderCredentialEvents2_DeleteFieldComboBoxItem(ICredentialProviderCredentialEvents2* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,DWORD dwItem) {
   2043     return This->lpVtbl->DeleteFieldComboBoxItem(This,pcpc,dwFieldID,dwItem);
   2044 }
   2045 static inline HRESULT ICredentialProviderCredentialEvents2_AppendFieldComboBoxItem(ICredentialProviderCredentialEvents2* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,LPCWSTR pszItem) {
   2046     return This->lpVtbl->AppendFieldComboBoxItem(This,pcpc,dwFieldID,pszItem);
   2047 }
   2048 static inline HRESULT ICredentialProviderCredentialEvents2_SetFieldSubmitButton(ICredentialProviderCredentialEvents2* This,ICredentialProviderCredential *pcpc,DWORD dwFieldID,DWORD dwAdjacentTo) {
   2049     return This->lpVtbl->SetFieldSubmitButton(This,pcpc,dwFieldID,dwAdjacentTo);
   2050 }
   2051 static inline HRESULT ICredentialProviderCredentialEvents2_OnCreatingWindow(ICredentialProviderCredentialEvents2* This,HWND *phwndOwner) {
   2052     return This->lpVtbl->OnCreatingWindow(This,phwndOwner);
   2053 }
   2054 /*** ICredentialProviderCredentialEvents2 methods ***/
   2055 static inline HRESULT ICredentialProviderCredentialEvents2_BeginFieldUpdates(ICredentialProviderCredentialEvents2* This) {
   2056     return This->lpVtbl->BeginFieldUpdates(This);
   2057 }
   2058 static inline HRESULT ICredentialProviderCredentialEvents2_EndFieldUpdates(ICredentialProviderCredentialEvents2* This) {
   2059     return This->lpVtbl->EndFieldUpdates(This);
   2060 }
   2061 static inline HRESULT ICredentialProviderCredentialEvents2_SetFieldOptions(ICredentialProviderCredentialEvents2* This,ICredentialProviderCredential *credential,DWORD fieldID,CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS options) {
   2062     return This->lpVtbl->SetFieldOptions(This,credential,fieldID,options);
   2063 }
   2064 #endif
   2065 #endif
   2066 
   2067 #endif
   2068 
   2069 
   2070 #endif  /* __ICredentialProviderCredentialEvents2_INTERFACE_DEFINED__ */
   2071 
   2072 /*****************************************************************************
   2073  * ICredentialProviderUser interface
   2074  */
   2075 #ifndef __ICredentialProviderUser_INTERFACE_DEFINED__
   2076 #define __ICredentialProviderUser_INTERFACE_DEFINED__
   2077 
   2078 DEFINE_GUID(IID_ICredentialProviderUser, 0x13793285, 0x3ea6, 0x40fd, 0xb4,0x20, 0x15,0xf4,0x7d,0xa4,0x1f,0xbb);
   2079 #if defined(__cplusplus) && !defined(CINTERFACE)
   2080 MIDL_INTERFACE("13793285-3ea6-40fd-b420-15f47da41fbb")
   2081 ICredentialProviderUser : public IUnknown
   2082 {
   2083     virtual HRESULT STDMETHODCALLTYPE GetSid(
   2084         LPWSTR *sid) = 0;
   2085 
   2086     virtual HRESULT STDMETHODCALLTYPE GetProviderID(
   2087         GUID *providerID) = 0;
   2088 
   2089     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
   2090         REFPROPERTYKEY key,
   2091         LPWSTR *stringValue) = 0;
   2092 
   2093     virtual HRESULT STDMETHODCALLTYPE GetValue(
   2094         REFPROPERTYKEY key,
   2095         PROPVARIANT *value) = 0;
   2096 
   2097 };
   2098 #ifdef __CRT_UUID_DECL
   2099 __CRT_UUID_DECL(ICredentialProviderUser, 0x13793285, 0x3ea6, 0x40fd, 0xb4,0x20, 0x15,0xf4,0x7d,0xa4,0x1f,0xbb)
   2100 #endif
   2101 #else
   2102 typedef struct ICredentialProviderUserVtbl {
   2103     BEGIN_INTERFACE
   2104 
   2105     /*** IUnknown methods ***/
   2106     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2107         ICredentialProviderUser *This,
   2108         REFIID riid,
   2109         void **ppvObject);
   2110 
   2111     ULONG (STDMETHODCALLTYPE *AddRef)(
   2112         ICredentialProviderUser *This);
   2113 
   2114     ULONG (STDMETHODCALLTYPE *Release)(
   2115         ICredentialProviderUser *This);
   2116 
   2117     /*** ICredentialProviderUser methods ***/
   2118     HRESULT (STDMETHODCALLTYPE *GetSid)(
   2119         ICredentialProviderUser *This,
   2120         LPWSTR *sid);
   2121 
   2122     HRESULT (STDMETHODCALLTYPE *GetProviderID)(
   2123         ICredentialProviderUser *This,
   2124         GUID *providerID);
   2125 
   2126     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   2127         ICredentialProviderUser *This,
   2128         REFPROPERTYKEY key,
   2129         LPWSTR *stringValue);
   2130 
   2131     HRESULT (STDMETHODCALLTYPE *GetValue)(
   2132         ICredentialProviderUser *This,
   2133         REFPROPERTYKEY key,
   2134         PROPVARIANT *value);
   2135 
   2136     END_INTERFACE
   2137 } ICredentialProviderUserVtbl;
   2138 
   2139 interface ICredentialProviderUser {
   2140     CONST_VTBL ICredentialProviderUserVtbl* lpVtbl;
   2141 };
   2142 
   2143 #ifdef COBJMACROS
   2144 #ifndef WIDL_C_INLINE_WRAPPERS
   2145 /*** IUnknown methods ***/
   2146 #define ICredentialProviderUser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2147 #define ICredentialProviderUser_AddRef(This) (This)->lpVtbl->AddRef(This)
   2148 #define ICredentialProviderUser_Release(This) (This)->lpVtbl->Release(This)
   2149 /*** ICredentialProviderUser methods ***/
   2150 #define ICredentialProviderUser_GetSid(This,sid) (This)->lpVtbl->GetSid(This,sid)
   2151 #define ICredentialProviderUser_GetProviderID(This,providerID) (This)->lpVtbl->GetProviderID(This,providerID)
   2152 #define ICredentialProviderUser_GetStringValue(This,key,stringValue) (This)->lpVtbl->GetStringValue(This,key,stringValue)
   2153 #define ICredentialProviderUser_GetValue(This,key,value) (This)->lpVtbl->GetValue(This,key,value)
   2154 #else
   2155 /*** IUnknown methods ***/
   2156 static inline HRESULT ICredentialProviderUser_QueryInterface(ICredentialProviderUser* This,REFIID riid,void **ppvObject) {
   2157     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2158 }
   2159 static inline ULONG ICredentialProviderUser_AddRef(ICredentialProviderUser* This) {
   2160     return This->lpVtbl->AddRef(This);
   2161 }
   2162 static inline ULONG ICredentialProviderUser_Release(ICredentialProviderUser* This) {
   2163     return This->lpVtbl->Release(This);
   2164 }
   2165 /*** ICredentialProviderUser methods ***/
   2166 static inline HRESULT ICredentialProviderUser_GetSid(ICredentialProviderUser* This,LPWSTR *sid) {
   2167     return This->lpVtbl->GetSid(This,sid);
   2168 }
   2169 static inline HRESULT ICredentialProviderUser_GetProviderID(ICredentialProviderUser* This,GUID *providerID) {
   2170     return This->lpVtbl->GetProviderID(This,providerID);
   2171 }
   2172 static inline HRESULT ICredentialProviderUser_GetStringValue(ICredentialProviderUser* This,REFPROPERTYKEY key,LPWSTR *stringValue) {
   2173     return This->lpVtbl->GetStringValue(This,key,stringValue);
   2174 }
   2175 static inline HRESULT ICredentialProviderUser_GetValue(ICredentialProviderUser* This,REFPROPERTYKEY key,PROPVARIANT *value) {
   2176     return This->lpVtbl->GetValue(This,key,value);
   2177 }
   2178 #endif
   2179 #endif
   2180 
   2181 #endif
   2182 
   2183 
   2184 #endif  /* __ICredentialProviderUser_INTERFACE_DEFINED__ */
   2185 
   2186 DEFINE_GUID(Identity_LocalUserProvider, 0xA198529B, 0x730F, 0x4089, 0xB6, 0x46, 0xA1, 0x25, 0x57, 0xF5, 0x66, 0x5E);
   2187 /*****************************************************************************
   2188  * ICredentialProviderUserArray interface
   2189  */
   2190 #ifndef __ICredentialProviderUserArray_INTERFACE_DEFINED__
   2191 #define __ICredentialProviderUserArray_INTERFACE_DEFINED__
   2192 
   2193 DEFINE_GUID(IID_ICredentialProviderUserArray, 0x90c119ae, 0x0f18, 0x4520, 0xa1,0xf1, 0x11,0x43,0x66,0xa4,0x0f,0xe8);
   2194 #if defined(__cplusplus) && !defined(CINTERFACE)
   2195 MIDL_INTERFACE("90c119ae-0f18-4520-a1f1-114366a40fe8")
   2196 ICredentialProviderUserArray : public IUnknown
   2197 {
   2198     virtual HRESULT STDMETHODCALLTYPE SetProviderFilter(
   2199         REFGUID guidProviderToFilterTo) = 0;
   2200 
   2201     virtual HRESULT STDMETHODCALLTYPE GetAccountOptions(
   2202         CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS *credentialProviderAccountOptions) = 0;
   2203 
   2204     virtual HRESULT STDMETHODCALLTYPE GetCount(
   2205         DWORD *userCount) = 0;
   2206 
   2207     virtual HRESULT STDMETHODCALLTYPE GetAt(
   2208         DWORD userIndex,
   2209         ICredentialProviderUser **user) = 0;
   2210 
   2211 };
   2212 #ifdef __CRT_UUID_DECL
   2213 __CRT_UUID_DECL(ICredentialProviderUserArray, 0x90c119ae, 0x0f18, 0x4520, 0xa1,0xf1, 0x11,0x43,0x66,0xa4,0x0f,0xe8)
   2214 #endif
   2215 #else
   2216 typedef struct ICredentialProviderUserArrayVtbl {
   2217     BEGIN_INTERFACE
   2218 
   2219     /*** IUnknown methods ***/
   2220     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2221         ICredentialProviderUserArray *This,
   2222         REFIID riid,
   2223         void **ppvObject);
   2224 
   2225     ULONG (STDMETHODCALLTYPE *AddRef)(
   2226         ICredentialProviderUserArray *This);
   2227 
   2228     ULONG (STDMETHODCALLTYPE *Release)(
   2229         ICredentialProviderUserArray *This);
   2230 
   2231     /*** ICredentialProviderUserArray methods ***/
   2232     HRESULT (STDMETHODCALLTYPE *SetProviderFilter)(
   2233         ICredentialProviderUserArray *This,
   2234         REFGUID guidProviderToFilterTo);
   2235 
   2236     HRESULT (STDMETHODCALLTYPE *GetAccountOptions)(
   2237         ICredentialProviderUserArray *This,
   2238         CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS *credentialProviderAccountOptions);
   2239 
   2240     HRESULT (STDMETHODCALLTYPE *GetCount)(
   2241         ICredentialProviderUserArray *This,
   2242         DWORD *userCount);
   2243 
   2244     HRESULT (STDMETHODCALLTYPE *GetAt)(
   2245         ICredentialProviderUserArray *This,
   2246         DWORD userIndex,
   2247         ICredentialProviderUser **user);
   2248 
   2249     END_INTERFACE
   2250 } ICredentialProviderUserArrayVtbl;
   2251 
   2252 interface ICredentialProviderUserArray {
   2253     CONST_VTBL ICredentialProviderUserArrayVtbl* lpVtbl;
   2254 };
   2255 
   2256 #ifdef COBJMACROS
   2257 #ifndef WIDL_C_INLINE_WRAPPERS
   2258 /*** IUnknown methods ***/
   2259 #define ICredentialProviderUserArray_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2260 #define ICredentialProviderUserArray_AddRef(This) (This)->lpVtbl->AddRef(This)
   2261 #define ICredentialProviderUserArray_Release(This) (This)->lpVtbl->Release(This)
   2262 /*** ICredentialProviderUserArray methods ***/
   2263 #define ICredentialProviderUserArray_SetProviderFilter(This,guidProviderToFilterTo) (This)->lpVtbl->SetProviderFilter(This,guidProviderToFilterTo)
   2264 #define ICredentialProviderUserArray_GetAccountOptions(This,credentialProviderAccountOptions) (This)->lpVtbl->GetAccountOptions(This,credentialProviderAccountOptions)
   2265 #define ICredentialProviderUserArray_GetCount(This,userCount) (This)->lpVtbl->GetCount(This,userCount)
   2266 #define ICredentialProviderUserArray_GetAt(This,userIndex,user) (This)->lpVtbl->GetAt(This,userIndex,user)
   2267 #else
   2268 /*** IUnknown methods ***/
   2269 static inline HRESULT ICredentialProviderUserArray_QueryInterface(ICredentialProviderUserArray* This,REFIID riid,void **ppvObject) {
   2270     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2271 }
   2272 static inline ULONG ICredentialProviderUserArray_AddRef(ICredentialProviderUserArray* This) {
   2273     return This->lpVtbl->AddRef(This);
   2274 }
   2275 static inline ULONG ICredentialProviderUserArray_Release(ICredentialProviderUserArray* This) {
   2276     return This->lpVtbl->Release(This);
   2277 }
   2278 /*** ICredentialProviderUserArray methods ***/
   2279 static inline HRESULT ICredentialProviderUserArray_SetProviderFilter(ICredentialProviderUserArray* This,REFGUID guidProviderToFilterTo) {
   2280     return This->lpVtbl->SetProviderFilter(This,guidProviderToFilterTo);
   2281 }
   2282 static inline HRESULT ICredentialProviderUserArray_GetAccountOptions(ICredentialProviderUserArray* This,CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS *credentialProviderAccountOptions) {
   2283     return This->lpVtbl->GetAccountOptions(This,credentialProviderAccountOptions);
   2284 }
   2285 static inline HRESULT ICredentialProviderUserArray_GetCount(ICredentialProviderUserArray* This,DWORD *userCount) {
   2286     return This->lpVtbl->GetCount(This,userCount);
   2287 }
   2288 static inline HRESULT ICredentialProviderUserArray_GetAt(ICredentialProviderUserArray* This,DWORD userIndex,ICredentialProviderUser **user) {
   2289     return This->lpVtbl->GetAt(This,userIndex,user);
   2290 }
   2291 #endif
   2292 #endif
   2293 
   2294 #endif
   2295 
   2296 
   2297 #endif  /* __ICredentialProviderUserArray_INTERFACE_DEFINED__ */
   2298 
   2299 /*****************************************************************************
   2300  * ICredentialProviderSetUserArray interface
   2301  */
   2302 #ifndef __ICredentialProviderSetUserArray_INTERFACE_DEFINED__
   2303 #define __ICredentialProviderSetUserArray_INTERFACE_DEFINED__
   2304 
   2305 DEFINE_GUID(IID_ICredentialProviderSetUserArray, 0x095c1484, 0x1c0c, 0x4388, 0x9c,0x6d, 0x50,0x0e,0x61,0xbf,0x84,0xbd);
   2306 #if defined(__cplusplus) && !defined(CINTERFACE)
   2307 MIDL_INTERFACE("095c1484-1c0c-4388-9c6d-500e61bf84bd")
   2308 ICredentialProviderSetUserArray : public IUnknown
   2309 {
   2310     virtual HRESULT STDMETHODCALLTYPE SetUserArray(
   2311         ICredentialProviderUserArray *users) = 0;
   2312 
   2313 };
   2314 #ifdef __CRT_UUID_DECL
   2315 __CRT_UUID_DECL(ICredentialProviderSetUserArray, 0x095c1484, 0x1c0c, 0x4388, 0x9c,0x6d, 0x50,0x0e,0x61,0xbf,0x84,0xbd)
   2316 #endif
   2317 #else
   2318 typedef struct ICredentialProviderSetUserArrayVtbl {
   2319     BEGIN_INTERFACE
   2320 
   2321     /*** IUnknown methods ***/
   2322     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2323         ICredentialProviderSetUserArray *This,
   2324         REFIID riid,
   2325         void **ppvObject);
   2326 
   2327     ULONG (STDMETHODCALLTYPE *AddRef)(
   2328         ICredentialProviderSetUserArray *This);
   2329 
   2330     ULONG (STDMETHODCALLTYPE *Release)(
   2331         ICredentialProviderSetUserArray *This);
   2332 
   2333     /*** ICredentialProviderSetUserArray methods ***/
   2334     HRESULT (STDMETHODCALLTYPE *SetUserArray)(
   2335         ICredentialProviderSetUserArray *This,
   2336         ICredentialProviderUserArray *users);
   2337 
   2338     END_INTERFACE
   2339 } ICredentialProviderSetUserArrayVtbl;
   2340 
   2341 interface ICredentialProviderSetUserArray {
   2342     CONST_VTBL ICredentialProviderSetUserArrayVtbl* lpVtbl;
   2343 };
   2344 
   2345 #ifdef COBJMACROS
   2346 #ifndef WIDL_C_INLINE_WRAPPERS
   2347 /*** IUnknown methods ***/
   2348 #define ICredentialProviderSetUserArray_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2349 #define ICredentialProviderSetUserArray_AddRef(This) (This)->lpVtbl->AddRef(This)
   2350 #define ICredentialProviderSetUserArray_Release(This) (This)->lpVtbl->Release(This)
   2351 /*** ICredentialProviderSetUserArray methods ***/
   2352 #define ICredentialProviderSetUserArray_SetUserArray(This,users) (This)->lpVtbl->SetUserArray(This,users)
   2353 #else
   2354 /*** IUnknown methods ***/
   2355 static inline HRESULT ICredentialProviderSetUserArray_QueryInterface(ICredentialProviderSetUserArray* This,REFIID riid,void **ppvObject) {
   2356     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2357 }
   2358 static inline ULONG ICredentialProviderSetUserArray_AddRef(ICredentialProviderSetUserArray* This) {
   2359     return This->lpVtbl->AddRef(This);
   2360 }
   2361 static inline ULONG ICredentialProviderSetUserArray_Release(ICredentialProviderSetUserArray* This) {
   2362     return This->lpVtbl->Release(This);
   2363 }
   2364 /*** ICredentialProviderSetUserArray methods ***/
   2365 static inline HRESULT ICredentialProviderSetUserArray_SetUserArray(ICredentialProviderSetUserArray* This,ICredentialProviderUserArray *users) {
   2366     return This->lpVtbl->SetUserArray(This,users);
   2367 }
   2368 #endif
   2369 #endif
   2370 
   2371 #endif
   2372 
   2373 
   2374 #endif  /* __ICredentialProviderSetUserArray_INTERFACE_DEFINED__ */
   2375 
   2376 #endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
   2377 #ifndef __CredentialProviders_LIBRARY_DEFINED__
   2378 #define __CredentialProviders_LIBRARY_DEFINED__
   2379 
   2380 DEFINE_GUID(LIBID_CredentialProviders, 0xd545db01, 0xe522, 0x4a63, 0xaf,0x83, 0xd8,0xdd,0xf9,0x54,0x00,0x4f);
   2381 
   2382 /*****************************************************************************
   2383  * PasswordCredentialProvider coclass
   2384  */
   2385 
   2386 DEFINE_GUID(CLSID_PasswordCredentialProvider, 0x60b78e88, 0xead8, 0x445c, 0x9c,0xfd, 0x0b,0x87,0xf7,0x4e,0xa6,0xcd);
   2387 
   2388 #ifdef __cplusplus
   2389 class DECLSPEC_UUID("60b78e88-ead8-445c-9cfd-0b87f74ea6cd") PasswordCredentialProvider;
   2390 #ifdef __CRT_UUID_DECL
   2391 __CRT_UUID_DECL(PasswordCredentialProvider, 0x60b78e88, 0xead8, 0x445c, 0x9c,0xfd, 0x0b,0x87,0xf7,0x4e,0xa6,0xcd)
   2392 #endif
   2393 #endif
   2394 
   2395 /*****************************************************************************
   2396  * V1PasswordCredentialProvider coclass
   2397  */
   2398 
   2399 DEFINE_GUID(CLSID_V1PasswordCredentialProvider, 0x6f45dc1e, 0x5384, 0x457a, 0xbc,0x13, 0x2c,0xd8,0x1b,0x0d,0x28,0xed);
   2400 
   2401 #ifdef __cplusplus
   2402 class DECLSPEC_UUID("6f45dc1e-5384-457a-bc13-2cd81b0d28ed") V1PasswordCredentialProvider;
   2403 #ifdef __CRT_UUID_DECL
   2404 __CRT_UUID_DECL(V1PasswordCredentialProvider, 0x6f45dc1e, 0x5384, 0x457a, 0xbc,0x13, 0x2c,0xd8,0x1b,0x0d,0x28,0xed)
   2405 #endif
   2406 #endif
   2407 
   2408 /*****************************************************************************
   2409  * PINLogonCredentialProvider coclass
   2410  */
   2411 
   2412 DEFINE_GUID(CLSID_PINLogonCredentialProvider, 0xcb82ea12, 0x9f71, 0x446d, 0x89,0xe1, 0x8d,0x09,0x24,0xe1,0x25,0x6e);
   2413 
   2414 #ifdef __cplusplus
   2415 class DECLSPEC_UUID("cb82ea12-9f71-446d-89e1-8d0924e1256e") PINLogonCredentialProvider;
   2416 #ifdef __CRT_UUID_DECL
   2417 __CRT_UUID_DECL(PINLogonCredentialProvider, 0xcb82ea12, 0x9f71, 0x446d, 0x89,0xe1, 0x8d,0x09,0x24,0xe1,0x25,0x6e)
   2418 #endif
   2419 #endif
   2420 
   2421 /*****************************************************************************
   2422  * NPCredentialProvider coclass
   2423  */
   2424 
   2425 DEFINE_GUID(CLSID_NPCredentialProvider, 0x3dd6bec0, 0x8193, 0x4ffe, 0xae,0x25, 0xe0,0x8e,0x39,0xea,0x40,0x63);
   2426 
   2427 #ifdef __cplusplus
   2428 class DECLSPEC_UUID("3dd6bec0-8193-4ffe-ae25-e08e39ea4063") NPCredentialProvider;
   2429 #ifdef __CRT_UUID_DECL
   2430 __CRT_UUID_DECL(NPCredentialProvider, 0x3dd6bec0, 0x8193, 0x4ffe, 0xae,0x25, 0xe0,0x8e,0x39,0xea,0x40,0x63)
   2431 #endif
   2432 #endif
   2433 
   2434 /*****************************************************************************
   2435  * SmartcardCredentialProvider coclass
   2436  */
   2437 
   2438 DEFINE_GUID(CLSID_SmartcardCredentialProvider, 0x8fd7e19c, 0x3bf7, 0x489b, 0xa7,0x2c, 0x84,0x6a,0xb3,0x67,0x8c,0x96);
   2439 
   2440 #ifdef __cplusplus
   2441 class DECLSPEC_UUID("8fd7e19c-3bf7-489b-a72c-846ab3678c96") SmartcardCredentialProvider;
   2442 #ifdef __CRT_UUID_DECL
   2443 __CRT_UUID_DECL(SmartcardCredentialProvider, 0x8fd7e19c, 0x3bf7, 0x489b, 0xa7,0x2c, 0x84,0x6a,0xb3,0x67,0x8c,0x96)
   2444 #endif
   2445 #endif
   2446 
   2447 /*****************************************************************************
   2448  * V1SmartcardCredentialProvider coclass
   2449  */
   2450 
   2451 DEFINE_GUID(CLSID_V1SmartcardCredentialProvider, 0x8bf9a910, 0xa8ff, 0x457f, 0x99,0x9f, 0xa5,0xca,0x10,0xb4,0xa8,0x85);
   2452 
   2453 #ifdef __cplusplus
   2454 class DECLSPEC_UUID("8bf9a910-a8ff-457f-999f-a5ca10b4a885") V1SmartcardCredentialProvider;
   2455 #ifdef __CRT_UUID_DECL
   2456 __CRT_UUID_DECL(V1SmartcardCredentialProvider, 0x8bf9a910, 0xa8ff, 0x457f, 0x99,0x9f, 0xa5,0xca,0x10,0xb4,0xa8,0x85)
   2457 #endif
   2458 #endif
   2459 
   2460 /*****************************************************************************
   2461  * SmartcardPinProvider coclass
   2462  */
   2463 
   2464 DEFINE_GUID(CLSID_SmartcardPinProvider, 0x94596c7e, 0x3744, 0x41ce, 0x89,0x3e, 0xbb,0xf0,0x91,0x22,0xf7,0x6a);
   2465 
   2466 #ifdef __cplusplus
   2467 class DECLSPEC_UUID("94596c7e-3744-41ce-893e-bbf09122f76a") SmartcardPinProvider;
   2468 #ifdef __CRT_UUID_DECL
   2469 __CRT_UUID_DECL(SmartcardPinProvider, 0x94596c7e, 0x3744, 0x41ce, 0x89,0x3e, 0xbb,0xf0,0x91,0x22,0xf7,0x6a)
   2470 #endif
   2471 #endif
   2472 
   2473 /*****************************************************************************
   2474  * SmartcardReaderSelectionProvider coclass
   2475  */
   2476 
   2477 DEFINE_GUID(CLSID_SmartcardReaderSelectionProvider, 0x1b283861, 0x754f, 0x4022, 0xad,0x47, 0xa5,0xea,0xaa,0x61,0x88,0x94);
   2478 
   2479 #ifdef __cplusplus
   2480 class DECLSPEC_UUID("1b283861-754f-4022-ad47-a5eaaa618894") SmartcardReaderSelectionProvider;
   2481 #ifdef __CRT_UUID_DECL
   2482 __CRT_UUID_DECL(SmartcardReaderSelectionProvider, 0x1b283861, 0x754f, 0x4022, 0xad,0x47, 0xa5,0xea,0xaa,0x61,0x88,0x94)
   2483 #endif
   2484 #endif
   2485 
   2486 /*****************************************************************************
   2487  * SmartcardWinRTProvider coclass
   2488  */
   2489 
   2490 DEFINE_GUID(CLSID_SmartcardWinRTProvider, 0x1ee7337f, 0x85ac, 0x45e2, 0xa2,0x3c, 0x37,0xc7,0x53,0x20,0x97,0x69);
   2491 
   2492 #ifdef __cplusplus
   2493 class DECLSPEC_UUID("1ee7337f-85ac-45e2-a23c-37c753209769") SmartcardWinRTProvider;
   2494 #ifdef __CRT_UUID_DECL
   2495 __CRT_UUID_DECL(SmartcardWinRTProvider, 0x1ee7337f, 0x85ac, 0x45e2, 0xa2,0x3c, 0x37,0xc7,0x53,0x20,0x97,0x69)
   2496 #endif
   2497 #endif
   2498 
   2499 /*****************************************************************************
   2500  * GenericCredentialProvider coclass
   2501  */
   2502 
   2503 DEFINE_GUID(CLSID_GenericCredentialProvider, 0x25cbb996, 0x92ed, 0x457e, 0xb2,0x8c, 0x47,0x74,0x08,0x4b,0xd5,0x62);
   2504 
   2505 #ifdef __cplusplus
   2506 class DECLSPEC_UUID("25cbb996-92ed-457e-b28c-4774084bd562") GenericCredentialProvider;
   2507 #ifdef __CRT_UUID_DECL
   2508 __CRT_UUID_DECL(GenericCredentialProvider, 0x25cbb996, 0x92ed, 0x457e, 0xb2,0x8c, 0x47,0x74,0x08,0x4b,0xd5,0x62)
   2509 #endif
   2510 #endif
   2511 
   2512 /*****************************************************************************
   2513  * RASProvider coclass
   2514  */
   2515 
   2516 DEFINE_GUID(CLSID_RASProvider, 0x5537e283, 0xb1e7, 0x4ef8, 0x9c,0x6e, 0x7a,0xb0,0xaf,0xe5,0x05,0x6d);
   2517 
   2518 #ifdef __cplusplus
   2519 class DECLSPEC_UUID("5537e283-b1e7-4ef8-9c6e-7ab0afe5056d") RASProvider;
   2520 #ifdef __CRT_UUID_DECL
   2521 __CRT_UUID_DECL(RASProvider, 0x5537e283, 0xb1e7, 0x4ef8, 0x9c,0x6e, 0x7a,0xb0,0xaf,0xe5,0x05,0x6d)
   2522 #endif
   2523 #endif
   2524 
   2525 /*****************************************************************************
   2526  * OnexCredentialProvider coclass
   2527  */
   2528 
   2529 DEFINE_GUID(CLSID_OnexCredentialProvider, 0x07aa0886, 0xcc8d, 0x4e19, 0xa4,0x10, 0x1c,0x75,0xaf,0x68,0x6e,0x62);
   2530 
   2531 #ifdef __cplusplus
   2532 class DECLSPEC_UUID("07aa0886-cc8d-4e19-a410-1c75af686e62") OnexCredentialProvider;
   2533 #ifdef __CRT_UUID_DECL
   2534 __CRT_UUID_DECL(OnexCredentialProvider, 0x07aa0886, 0xcc8d, 0x4e19, 0xa4,0x10, 0x1c,0x75,0xaf,0x68,0x6e,0x62)
   2535 #endif
   2536 #endif
   2537 
   2538 /*****************************************************************************
   2539  * OnexPlapSmartcardCredentialProvider coclass
   2540  */
   2541 
   2542 DEFINE_GUID(CLSID_OnexPlapSmartcardCredentialProvider, 0x33c86cd6, 0x705f, 0x4ba1, 0x9a,0xdb, 0x67,0x07,0x0b,0x83,0x77,0x75);
   2543 
   2544 #ifdef __cplusplus
   2545 class DECLSPEC_UUID("33c86cd6-705f-4ba1-9adb-67070b837775") OnexPlapSmartcardCredentialProvider;
   2546 #ifdef __CRT_UUID_DECL
   2547 __CRT_UUID_DECL(OnexPlapSmartcardCredentialProvider, 0x33c86cd6, 0x705f, 0x4ba1, 0x9a,0xdb, 0x67,0x07,0x0b,0x83,0x77,0x75)
   2548 #endif
   2549 #endif
   2550 
   2551 /*****************************************************************************
   2552  * VaultProvider coclass
   2553  */
   2554 
   2555 DEFINE_GUID(CLSID_VaultProvider, 0x503739d0, 0x4c5e, 0x4cfd, 0xb3,0xba, 0xd8,0x81,0x33,0x4f,0x0d,0xf2);
   2556 
   2557 #ifdef __cplusplus
   2558 class DECLSPEC_UUID("503739d0-4c5e-4cfd-b3ba-d881334f0df2") VaultProvider;
   2559 #ifdef __CRT_UUID_DECL
   2560 __CRT_UUID_DECL(VaultProvider, 0x503739d0, 0x4c5e, 0x4cfd, 0xb3,0xba, 0xd8,0x81,0x33,0x4f,0x0d,0xf2)
   2561 #endif
   2562 #endif
   2563 
   2564 /*****************************************************************************
   2565  * WinBioCredentialProvider coclass
   2566  */
   2567 
   2568 DEFINE_GUID(CLSID_WinBioCredentialProvider, 0xbec09223, 0xb018, 0x416d, 0xa0,0xac, 0x52,0x39,0x71,0xb6,0x39,0xf5);
   2569 
   2570 #ifdef __cplusplus
   2571 class DECLSPEC_UUID("bec09223-b018-416d-a0ac-523971b639f5") WinBioCredentialProvider;
   2572 #ifdef __CRT_UUID_DECL
   2573 __CRT_UUID_DECL(WinBioCredentialProvider, 0xbec09223, 0xb018, 0x416d, 0xa0,0xac, 0x52,0x39,0x71,0xb6,0x39,0xf5)
   2574 #endif
   2575 #endif
   2576 
   2577 /*****************************************************************************
   2578  * V1WinBioCredentialProvider coclass
   2579  */
   2580 
   2581 DEFINE_GUID(CLSID_V1WinBioCredentialProvider, 0xac3ac249, 0xe820, 0x4343, 0xa6,0x5b, 0x37,0x7a,0xc6,0x34,0xdc,0x09);
   2582 
   2583 #ifdef __cplusplus
   2584 class DECLSPEC_UUID("ac3ac249-e820-4343-a65b-377ac634dc09") V1WinBioCredentialProvider;
   2585 #ifdef __CRT_UUID_DECL
   2586 __CRT_UUID_DECL(V1WinBioCredentialProvider, 0xac3ac249, 0xe820, 0x4343, 0xa6,0x5b, 0x37,0x7a,0xc6,0x34,0xdc,0x09)
   2587 #endif
   2588 #endif
   2589 
   2590 #endif /* __CredentialProviders_LIBRARY_DEFINED__ */
   2591 #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
   2592 /* Begin additional prototypes for all interfaces */
   2593 
   2594 ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *);
   2595 unsigned char * __RPC_USER HBITMAP_UserMarshal  (ULONG *, unsigned char *, HBITMAP *);
   2596 unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *);
   2597 void            __RPC_USER HBITMAP_UserFree     (ULONG *, HBITMAP *);
   2598 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
   2599 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
   2600 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
   2601 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
   2602 
   2603 /* End additional prototypes */
   2604 
   2605 #ifdef __cplusplus
   2606 }
   2607 #endif
   2608 
   2609 #endif /* __credentialprovider_h__ */