Hi, I need to convert some C++ code into Visual Basic code but have not been able to complete the task.
Can anyone help.
Here is the C++ code:
Also I need to know how to define the API call for:Code:#include <windows.h> #include <stdio.h> DWORD UpdateDefaultPassword(WCHAR * pwszSecret) { LSA_OBJECT_ATTRIBUTES ObjectAttributes; LSA_HANDLE LsaPolicyHandle = NULL; LSA_UNICODE_STRING lusSecretName; LSA_UNICODE_STRING lusSecretData; USHORT SecretNameLength; USHORT SecretDataLength; NTSTATUS ntsResult = STATUS_SUCCESS; DWORD dwRetCode = ERROR_SUCCESS; // Object attributes are reserved, so initialize to zeros. ZeroMemory(&ObjectAttributes, sizeof(ObjectAttributes)); // Get a handle to the Policy object. ntsResult = LsaOpenPolicy( NULL, // local machine &ObjectAttributes, POLICY_CREATE_SECRET, &LsaPolicyHandle); if( STATUS_SUCCESS != ntsResult ) { // An error occurred. Display it as a win32 error code. dwRetCode = LsaNtStatusToWinError(ntsResult); wprintf(L"Failed call to LsaOpenPolicy %lu\n", dwRetCode); return dwRetCode; } // Initialize an LSA_UNICODE_STRING for the name of the // private data ("DefaultPassword"). SecretNameLength = (USHORT)wcslen(L"DefaultPassword"); lusSecretName.Buffer = L"DefaultPassword"; lusSecretName.Length = SecretNameLength * sizeof(WCHAR); lusSecretName.MaximumLength = (SecretNameLength+1) * sizeof(WCHAR); // If the pwszSecret parameter is NULL, then clear the secret. if( NULL == pwszSecret ) { wprintf(L"Clearing the secret...\n"); ntsResult = LsaStorePrivateData( LsaPolicyHandle, &lusSecretName, NULL); dwRetCode = LsaNtStatusToWinError(ntsResult); } else { wprintf(L"Setting the secret...\n"); // Initialize an LSA_UNICODE_STRING for the value // of the private data. SecretDataLength = (USHORT)wcslen(pwszSecret); lusSecretData.Buffer = pwszSecret; lusSecretData.Length = SecretDataLength * sizeof(WCHAR); lusSecretData.MaximumLength = (SecretDataLength+1) * sizeof(WCHAR); ntsResult = LsaStorePrivateData( LsaPolicyHandle, &lusSecretName, &lusSecretData); dwRetCode = LsaNtStatusToWinError(ntsResult); } LsaClose(LsaPolicyHandle); if (dwRetCode != ERROR_SUCCESS) wprintf(L"Failed call to LsaStorePrivateData %lu\n", dwRetCode); return dwRetCode; }
LsaNtStatusToWinError
LsaOpenPolicy
LsaStorePrivateData
ZeroMemory
LsaNtStatusToWinError
So basically I need this function to work with Visual Basic 2010.
Regards
Rodney




Reply With Quote
