How to add PtrSafe to make this work in 64 bit

Skylar-Barlow
Skylar-Barlow used Ask the Experts™
on
I have this part of the code which is for 32 bit Excel and my excel is 64 bit,

I tried to make this 64 bit by adding PtrSafe at the beginining of the code. it did not work for me.

can anyone please help me?

Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function ShellExecute Lib "shell32" _
    Alias "ShellExecuteA" _
   (ByVal hwnd As Long, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long

Open in new window

Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Zakaria AcharkiAnalyst Developer
Distinguished Expert 2018

Commented:
PtrSafe Asserts that a Declare statement is targeted for 64-bit systems. Required on 64-bits. so try to add it to the declaration like :

Private Declare PtrSafe Function GetDesktopWindow Lib "user32" () As Long
Private Declare PtrSafe Function ShellExecute Lib "shell32" 

Open in new window


For both version you could use a conditional declaration like :

#If Vba7 Then 
Private Declare PtrSafe Function ... 
#Else 
Private Declare Function ... 
#EndIf 

Open in new window

President / Owner CARDA Consultants Inc.
Distinguished Expert 2018
Commented:
Public Declare PtrSafe Function GetDesktopWindow Lib "USER32" () As LongPtr
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
        ByVal hwnd As LongPtr, _
        ByVal lpOperation As String, _
        ByVal lpFile As String, _
        ByVal lpParameters As String, _
        ByVal lpDirectory As String, _
        ByVal nShowCmd As Long) As LongPtr

Here's a great resource on the subject: https://www.jkp-ads.com/articles/apideclarations.asp
Thanks very much Daniel. It solved the problem.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial