A pointer has an implied address space, and is only valid in that one address space. Each executable is run in it's own address space. Hence pointers in use by one executable will never interfere with the memory of a separate executable. A DLL is loaded into the address space of the executable referencing it. Pointers can be shared between executables, and the DLLs that it loads, and they can freely overwrite each other's memory. Note that a DLL can be loaded into the address space of two executables at the same time, but this implies that those two running copies of the DLL are separate from each other and can't write to each other's memory. The same thing happens if you start two copies of the same executable. They each run in a separate address space and can't overwrite each other's memory.
There are of course exceptions to this. There are some debugging functions that let you read and write memory in another process. They probably require admin access to use them though. When using them, you have to specify both an address space, and a pointer into it's memory. The address space is specified using a handle to the running process.
There are also shared memory segments. However, this requires co-operation from both address spaces, as they both need to setup handles to the shared space, and generally need to follow some sort of memory access pattern to keep the two processes from corrupting the shared area.
Now, first of all, I'd like to state I think you're getting in way over your head. What you want to do is not particularly easy, and will require both a lot of knowledge of programming, and a lot of knowledge on how Outpost 2 works internally.
I suppose I could go on at great length on this subject, but I somehow doubt it would really end up helping anybody. In short, what you want to do it not possible using simple pointers.