Hi All,

https://docs.perl6.org/language/nativecall

     "As you may have predicted by now, a NULL pointer
     is represented by the type object of the struct type."

https://docs.microsoft.com/en-us/windows/win32/api/winreg/nf-winreg-regqueryvalueexw

     C++
     LSTATUS RegQueryValueExW(
       HKEY    hKey,
       LPCWSTR lpValueName,
       LPDWORD lpReserved,
       LPDWORD lpType,
       LPBYTE  lpData,
       LPDWORD lpcbData
     );

     lpReserved
     This parameter is reserved and must be NULL.

With "native", how do I satisfy the "NULL" requirement?

constant WCHAR   := uint16;

constant DWORD   := int32;


sub RegQueryValueExW( DWORD, WCHARS, DWORD, DWORD, DWORD is rw, DWORD is rw ) is native("Kernel32.dll") returns DWORD { * };

$RtnCode = RegQueryValueExW( $Handle, $lpValueName, int32, REG_DWORD, $lpData, $lpcbData );

"int32" returns:

    Cannot unbox a type object (int32) to int in method
    CALL-ME at C:\rakudo\share\perl6\sources \947BDAB9F96E0E5FCCB383124F9
    23A6BF6F8D76B (NativeCall) line 587


Many thanks,
-T

Reply via email to