Permalink
Browse files

The actual interface change

  • Loading branch information...
SteveSyfuhs committed Oct 15, 2017
1 parent 7d55742 commit 340caafefdc76e17dbf4c2ea18bfdd38bdd5ca37
Showing with 21 additions and 54 deletions.
  1. +21 −54 midl/credentialprovider.idl
@@ -1,10 +1,20 @@
//
// This typelib contains the CLSIDs of Microsoft's ICredentialProvider implementations.
//
[
uuid(d545db01-e522-4a63-af83-d8ddf954004f), // LIBID_CredentialProviders
]
library CredentialProviders
{
cpp_quote("#include <winapifamily.h>")
#pragma region Desktop Family
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
import "wtypes.idl";
import "shobjidl.idl";
import "shobjidl_core.idl";
import "propsys.idl";
import "unknwn.idl";
[v1_enum] typedef enum _CREDENTIAL_PROVIDER_USAGE_SCENARIO
@@ -99,16 +109,21 @@ cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS)")
CPCFO_IS_EMAIL_ADDRESS = 0x00000002, // This is a email address, so set the keyboard input scope appropriately
CPCFO_ENABLE_TOUCH_KEYBOARD_AUTO_INVOKE = 0x00000004, // Touch keyboard will be invoked automatically on the provider. This should be only set on the CPFG_CREDENTIAL_PROVIDER_LOGO field
CPCFO_NUMBERS_ONLY = 0x00000008, // The edit field will show numbers only. This should be only set on the CPFT_PASSWORD_TEXT field
CPCFO_SHOW_ENGLISH_KEYBOARD = 0x00000010, // The edit field will show English keyboard.
} CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS)")
cpp_quote("#endif // (NTDDI_VERSION >= NTDDI_WIN8)")
//
// No idl files contain NTSTATUS. Therefore we mirror its definition in ntdef.h.
//
#ifndef NTSTATUS
cpp_quote("#ifdef __midl")
typedef LONG NTSTATUS;
#endif
cpp_quote("#else // __midl")
cpp_quote("#ifndef NTSTATUS")
cpp_quote("typedef _Return_type_success_(return >= 0) LONG NTSTATUS;")
cpp_quote("#endif // NTSTATUS")
cpp_quote("#endif // __midl")
cpp_quote("#define CREDENTIAL_PROVIDER_NO_DEFAULT ((DWORD)-1)")
@@ -133,7 +148,7 @@ interface ICredentialProviderCredential : IUnknown
[out, annotation("_Out_")] CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE* pcpfis);
HRESULT GetStringValue([in] DWORD dwFieldID, [out, string, annotation("_Outptr_result_nullonfailure_")] LPWSTR* ppsz);
HRESULT GetBitmapValue([in] DWORD dwFieldID, [out, annotation("_Outptr_result_nullonfailure_")] HBITMAP* phbmp);
HRESULT GetBitmapValue([in] DWORD dwFieldID, [out, annotation("_Outptr_result_nullonfailure_")] HANDLE* phbmp);
HRESULT GetCheckboxValue([in] DWORD dwFieldID, [out, annotation("_Out_")] BOOL* pbChecked, [out, string, annotation("_Outptr_result_nullonfailure_")] LPWSTR* ppszLabel);
HRESULT GetSubmitButtonValue([in] DWORD dwFieldID, [out, annotation("_Out_")] DWORD* pdwAdjacentTo);
@@ -275,7 +290,7 @@ interface ICredentialProviderFilter : IUnknown
[out, annotation("_Out_")] CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION* pcpcsOut);
};
cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN8)")
//cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN8)")
[
local,
object,
@@ -358,55 +373,6 @@ interface ICredentialProviderSetUserArray : IUnknown
cpp_quote("#endif // (NTDDI_VERSION >= NTDDI_WIN8)")
cpp_quote("#if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)")
[
local,
object,
pointer_default(ref),
uuid(64A5010E-4363-41F8-9738-19045C20DABC),
]
interface ICredentialProviderCredential3 : ICredentialProviderCredential2
{
HRESULT GetBitmapBufferValue([in] DWORD fieldID,
[in, out, annotation("_Out_")] DWORD* pImageBufferSize,
[out, size_is(, *pImageBufferSize), annotation("_Outptr_result_bytebuffer_(*pImageBufferSize) _Result_nullonfailure_")] BYTE** ppImageBuffer);
};
[
object,
pointer_default(ref),
uuid(2D8DEEB8-1322-4973-8DF9-B282F2468290),
]
interface ICredentialProviderCredentialEvents3 : ICredentialProviderCredentialEvents2
{
HRESULT SetFieldBitmapBuffer([in] ICredentialProviderCredential* pcpc,
[in] DWORD fieldID,
[in] DWORD imageBufferSize,
[in, size_is(imageBufferSize)] BYTE const* pImageBuffer);
};
[
local,
uuid(712DF3E5-BAF7-47F5-9131-DB2DA3B02C93),
object,
pointer_default(ref),
]
interface ICredentialProviderUserArray2 : ICredentialProviderUserArray
{
HRESULT SetProviderFilters([in, size_is(cProviders), annotation("_In_reads_(cProviders)")] GUID* rgclsidProvidersToFilterTo,
[in] DWORD cProviders);
};
cpp_quote("#endif // (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)")
//
// This typelib contains the CLSIDs of Microsoft's ICredentialProvider implementations.
//
[
uuid(d545db01-e522-4a63-af83-d8ddf954004f), // LIBID_CredentialProviders
]
library CredentialProviders
{
// CLSID_PasswordCredentialProvider
[ uuid(60b78e88-ead8-445c-9cfd-0b87f74ea6cd) ] coclass PasswordCredentialProvider { interface ICredentialProvider; }
@@ -458,3 +424,4 @@ library CredentialProviders
cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */")
#pragma endregion

0 comments on commit 340caaf

Please sign in to comment.