Quantcast
Channel: AutoIt v3 - General Help and Support
Viewing all articles
Browse latest Browse all 12506

Wrong DLLCall Return - problems with PCWSTR

$
0
0
Hey peoplez,
i am tyring to run this function properly: http://msdn.microsoft.com/en-us/library/windows/desktop/hh824745.aspx

On success, DLLCall returns "S_OK" -> 0
That's returned properly. Also

Quote

A pointer to the address of an array of DismMountedImageInfo Structure objects
and

Quote

The number of DismMountedImageInfo structures that are returned.

The number of mounted images is returned properly too. But the returned struct is wrong. I got following output:


Quote

0x0011CDC0
0x03AB09A0
0
0
0



$Return[2] have to be 3 (ImageIndex). I mounted an image with the DismMountImage Function...that works fine. So the entire struct i created must be wrong. :(

Can someone help me please!


[ autoit ]         
; Function Call ;~ HRESULT WINAPI DismGetMountedImageInfo( ;~ _Outptr_result_buffer_(*Count) DismMountedImageInfo** MountedImageInfo, ;~ _Out_ UINT* Count ;~ ); Func DismGetMountedImageInfo() ConsoleWrite("--------------------------------" & "DismGetMountedImageInfo" & @CRLF) Global Const $DismReadWrite = 0 Global Const $DismReadOnly = 1 Global Const $DismMountStatusOk = 0 Global Const $DismMountStatusNeedsRemount = 1 Global Const $DismMountStatusInvalid = 2 Local $Count Local $Return[7] ;~ $wchar = DllStructCreate("WCHAR[260]") ;~ $ptrwchar = DllStructGetPtr($wchar) ;~ ;~ $wchar2 = DllStructCreate("WCHAR[260]") ;~ $ptrwchar2 = DllStructGetPtr($wchar2) Local $wchar = DllStructCreate("WCHAR[260]") Local $ptrwchar = DllStructGetPtr($wchar) Local $wchar2 = DllStructCreate("WCHAR[260]") Local $ptrwchar2 = DllStructGetPtr($wchar2) ;~ Global Const $tagDismMountedImageInfo = "ptr " & $ptrwchar & ";" & "ptr " & $ptrwchar2 & ";UINT ImageIndex;Int DismMountMode;Int MountStatus" ;~ ConsoleWrite($tagDismMountedImageInfo & @CRLF) ;~ Local $tWIM_MOUNT_LIST = DllStructCreate($tagDismMountedImageInfo) ; & ";" & $tagDismMountedImageInfo) ;~ Local $pWIM_MOUNT_LIST = DllStructGetPtr($tWIM_MOUNT_LIST) ;~ ;~ MsgBox(0, "sadfaf", $tagDismMountedImageInfo) Global Const $tagDismMountedImageInfo = "ptr MountPath;ptr ImageFilePath;UINT ImageIndex;Int DismMountMode;Int MountStatus" ;~ HRESULT hr = S_OK; ;~ DismMountedImageInfo* ImageInfo; ;~ UINT& ImageInfoCount; ;~ hr = DismGetMountedImageInfo(&ImageInfo, &ImageInfoCount); Local $tDismMountedImageInfo = DllStructCreate($tagDismMountedImageInfo) DllStructSetData($tDismMountedImageInfo, "MountPath", $ptrwchar) DllStructSetData($tDismMountedImageInfo, "ImageFilePath", $ptrwchar2) Local $pDismMountedImageInfo = DllStructGetPtr($tDismMountedImageInfo) Local $aResult = DllCall($ghdismapi, "long", "DismGetMountedImageInfo", _ "ptr", $pDismMountedImageInfo, _ "uint*", $Count _ ) ConsoleWrite("DismGetMountedImageInfo error: " & @error & @CRLF) ;~ _ArrayDisplay($aResult, "DismGetMountedImageInfo aResult") ConsoleWrite("DismGetMountedImageInfo returns: " & $aResult[0] & @CRLF) ConsoleWrite("Mounted Image Count: " & $aResult[2] & @CRLF) $Return[0] = DllStructGetData($tDismMountedImageInfo, 1) $Return[1] = DllStructGetData($tDismMountedImageInfo, 2) $Return[2] = DllStructGetData($tDismMountedImageInfo, 3) $Return[3] = DllStructGetData($tDismMountedImageInfo, 4) $Return[4] = DllStructGetData($tDismMountedImageInfo, 5) $Return[5] = DllStructGetData($wchar, 1) $Return[6] = DllStructGetData($wchar2, 1) _ArrayDisplay($Return, "DismGetMountedImageInfo aReturn") ;~ ConsoleWrite("---" & @CRLF) ;~ ConsoleWrite($Return[0] & @CRLF) ; MountPath ;~ ConsoleWrite($Return[1] & @CRLF) ; ImageFilePath ;~ ConsoleWrite($Return[2] & @CRLF) ; ImageIndex ;~ ConsoleWrite($Return[3] & @CRLF) ; DismMountMode ;~ ConsoleWrite($Return[4] & @CRLF) ; MountStatus ;~ ConsoleWrite($Return[5] & @CRLF) ;~ ConsoleWrite($Return[6] & @CRLF) EndFunc

Viewing all articles
Browse latest Browse all 12506

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>