[AccessD] 32->64 bit

Arthur Fuller fuller.artful at gmail.com
Tue Nov 9 12:13:59 CST 2021


Thanks for the detailed reply, Borge. That's a big help -- not that it's
any less tedious, but there's nothing we can do about that.

On Mon, Nov 8, 2021 at 6:03 PM Borge Hansen <pcs.accessd at gmail.com> wrote:

> Arthur,
> Also, If you have many of Getz and Litwin's APIs - you will note they are
> prefixed with adh_
> Just remove the prefix when searching the .txt file for the new API
> declaration.
> Paste it into your Access project and then add the adh_ prefix;  if Getz
> and Litwin also prefixed any constants or type declaration be sure to add
> the prefix to the constant / type in the api declaration that you pasted in
> from the .txt file.
>
> So your task may go something like this (with a repeat and rinse many
> times):
> Search for Lib "User32" - restrict to one module at a time so you have an
> idea which modules you've covered...
> You may come across this API function from Getz and Litwin; (it's used in
> connection with removing the caption bar of a form):
> Declare Function adh_apiGetWindowRect Lib "user32" Alias "GetWindowRect"
> (ByVal hwnd As Long, lpRect As adhTypeRect) As Long
> Note the adh_ prefix on the function and the adh prefix on the Type
>
> Now in the .txt file search for the api function without the prefix:
> apiGetWindowRect Lib "user32"
>
> Paste back into your Access project and add the adh_ and adh prefixes:
> Declare PtrSafe Function adh_apiGetWindowRect Lib "user32" Alias
> "GetWindowRect" (ByVal hWnd As LongPtr, lpRect As adhTypeRect) As Long
>
> Since the api function is declared as Long you're done.
>
> Here's the "rinsing" part of the "repeat and rinse":
>
> For an api function like this one (also used in connection with removing
> the caption bar of a form)
> old:
> Declare Function adh_apiGetWindowLong Lib "user32" Alias "GetWindowLongA"
> (ByVal hwnd As Long, ByVal nIndex As Long) As Long
> ptrsafe:
> Declare PtrSafe Function adh_apiGetWindowLong Lib "user32" Alias
> "GetWindowLongPtrA" (ByVal hWnd As LongPtr, ByVal nIndex As Long) As
> LongPtr
>
> you will note that the PtrSafe function has a return value of LongPtr.
>
> You therefore need to search your Access project for all variables you have
> declared that will receive this function value and declare those variables
> as LongPtr
> When done: Repeat and rinse....
>
> Have fun... or not!
>
> /borge
>
>
>
>
>
>
>
> On Tue, Nov 9, 2021 at 8:09 AM Stuart McLachlan <stuart at lexacorp.com.pg>
> wrote:
>
> >
> > On 8 Nov 2021 at 16:23, Arthur Fuller wrote:
> > > Should I open that file in a text editor and then load my Access app,
> > > then search for each DECLARE [Private] Function, then search the text
> > > file for the corresponding declaration, then copy/paste? I really
> > > don't know how to proceed.
> >
> > Yes. That's it exactly.
> >
> > That file contains updated/replacement declaration for a huge range of
> API
> > functions.
> > All you need to do is locate the few Type and Function declarations your
> > application
> > currently uses and update them (if they are changed) by copying the new
> > version from that
> > document.
> >
> > Constants (if any) will not have changed values.  You only need to worry
> > about missing
> > constants if you decide to add another API function that is not currently
> > in your application.
> >
> > --
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > https://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
> >
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> https://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>


-- 
Arthur


More information about the AccessD mailing list