That's C++ code.
// sizeof(DWORD) == 32 bits or 4 bytes
// sizeof(UINT64) == 64 bits or 8 bytes
#define MY_ADDR 0x1DEADC0DE // This is a 64 bit address
DWORD myAddrI32 = MY_ADDR; // Guess what happens -- MY_ADDR is casted to a 32 bit value meaning the prefixed '1' gets removed and the address transforms to 0xDEADC0DE
UINT64 myAddrI64 = MY_ADDR; // This is interpreted as it should be.
If you're using another language, make sure your program compiles as x64 and imports your APIs as x64 ( All LPVOID pointers get 64 bit values )
Also ensure you're using 64 bit variables to hold your values.