From: Austin English austinenglish@gmail.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56617 --- dlls/netapi32/netapi32.c | 9 +++++++++ dlls/netapi32/netapi32.spec | 1 + include/lmjoin.h | 38 +++++++++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+)
diff --git a/dlls/netapi32/netapi32.c b/dlls/netapi32/netapi32.c index 56da0cd640b..f7885f6e2c3 100644 --- a/dlls/netapi32/netapi32.c +++ b/dlls/netapi32/netapi32.c @@ -2814,3 +2814,12 @@ void __RPC_USER ATSVC_HANDLE_unbind(ATSVC_HANDLE ServerName, handle_t rpc_handle { RpcBindingFree(&rpc_handle); } + +/************************************************************ + * NetGetAadJoinInformation (NETAPI32.@) + */ +HRESULT WINAPI NetGetAadJoinInformation(LPCWSTR tenant_id, PDSREG_JOIN_INFO *join_info) +{ + FIXME("(%s, %p): stub\n", debugstr_w(tenant_id), join_info); + return ERROR_CALL_NOT_IMPLEMENTED; +} diff --git a/dlls/netapi32/netapi32.spec b/dlls/netapi32/netapi32.spec index 4e19c3c53ba..19a03ad642a 100644 --- a/dlls/netapi32/netapi32.spec +++ b/dlls/netapi32/netapi32.spec @@ -93,6 +93,7 @@ @ stub NetFileClose @ stdcall NetFileEnum(wstr wstr wstr long ptr long ptr ptr ptr) @ stub NetFileGetInfo +@ stdcall NetGetAadJoinInformation(wstr ptr) @ stdcall NetGetAnyDCName(wstr wstr ptr) @ stdcall NetGetDCName(wstr wstr ptr) @ stub NetGetDisplayInformationIndex diff --git a/include/lmjoin.h b/include/lmjoin.h index cf0896d3f23..f363259f990 100644 --- a/include/lmjoin.h +++ b/include/lmjoin.h @@ -23,6 +23,10 @@ extern "C" { #endif
+#ifndef __WINCRYPT_H__ +typedef const struct _CERT_CONTEXT *PCCERT_CONTEXT; +#endif + typedef enum tagNETSETUP_JOIN_STATUS { NetSetupUnknownStatus = 0, @@ -31,11 +35,45 @@ typedef enum tagNETSETUP_JOIN_STATUS NetSetupDomainName } NETSETUP_JOIN_STATUS, *PNETSETUP_JOIN_STATUS;
+typedef enum _DSREG_JOIN_TYPE +{ + DSREG_UNKNOWN_JOIN = 0, + DSREG_DEVICE_JOIN = 1, + DSREG_WORKPLACE_JOIN = 2 +} DSREG_JOIN_TYPE, *PDSREG_JOIN_TYPE; + +typedef struct _DSREG_USER_INFO +{ + LPWSTR pszUserEmail; + LPWSTR pszUserKeyId; + LPWSTR pszUserKeyName; +} DSREG_USER_INFO, *PDSREG_USER_INFO; + +typedef struct _DSREG_JOIN_INFO +{ + DSREG_JOIN_TYPE joinType; + PCCERT_CONTEXT pJoinCertificate; + LPWSTR pszDeviceId; + LPWSTR pszIdpDomain; + LPWSTR pszTenantId; + LPWSTR pszJoinUserEmail; + LPWSTR pszTenantDisplayName; + LPWSTR pszMdmEnrollmentUrl; + LPWSTR pszMdmTermsOfUseUrl; + LPWSTR pszMdmComplianceUrl; + LPWSTR pszUserSettingSyncUrl; + DSREG_USER_INFO *pUserInfo; +} DSREG_JOIN_INFO, *PDSREG_JOIN_INFO; + NET_API_STATUS NET_API_FUNCTION NetGetJoinInformation( LPCWSTR Server, LPWSTR *Name, PNETSETUP_JOIN_STATUS type);
+HRESULT NET_API_FUNCTION NetGetAadJoinInformation( + LPCWSTR pcszTenantId, + PDSREG_JOIN_INFO *ppJoinInfo); + #ifdef __cplusplus } #endif
Aida Jonikienė (@DodoGTA) commented about dlls/netapi32/netapi32.c:
{ RpcBindingFree(&rpc_handle); }
+/************************************************************
- NetGetAadJoinInformation (NETAPI32.@)
- */
+HRESULT WINAPI NetGetAadJoinInformation(LPCWSTR tenant_id, PDSREG_JOIN_INFO *join_info) +{
- FIXME("(%s, %p): stub\n", debugstr_w(tenant_id), join_info);
- return ERROR_CALL_NOT_IMPLEMENTED;
Nitpick: Shouldn't `E_NOTIMPL` be used for `HRESULT` return types? :frog: