GlobalLock

GlobalLockで、グローバルメモリをロックし、先頭ポインタを取得する。

GlobalLock function (winbase.h) - Win32 apps | Microsoft Docs

固定メモリの場合は、ハンドルの値がそのまま先頭ポインタになるので、ハンドルをキャストしてそこにデータをコピーしたりできる。
一方で移動可能なメモリの場合は、ハンドルと先頭ポインタが異なるので、ハンドルをキャストしてはいけない。

最初は固定メモリ、次に移動可能メモリ。

hGlobal = 0x005a2510
lpszText = 0x005a2510
hGlobal = ABCDE
lpszText = ABCDE
hGlobal = 0x00230004
lpszText = 0x005a2510
lpszText = ABCDE
続行するには何かキーを押してください . . .

固定メモリは、確かに値が同じで、hGlobalに文字列をコピーして、lpszTextにも反映してる。
移動可能メモリは、値が異なるので、それはできない。

Sample/winapi/GlobalLock/GlobalLock/src/GlobalLock at master · bg1bgst333/Sample · GitHub