Forgiven.
You've failed to provide a reason for using your struct at all from within C# code. Until you provide a concrete reason, other than 'code should be self documenting' (which is usually true, however, that's why comments are available in nearly every language), then I'll stop picking at your code.I still stand by my claim that a clearly defined and named "typedef" (unfortunately, C# struct in this case) is preferable to a more generic base type, such as ulong.In usual code however; there's no need for it when there's a perfectly viable language-specific replacement. (ulong, long, etc)
IntPtr (apart from providing other benefits) is clearly preferable to using uint to represent a memory address within a language that does not directly support pointers, even though uint is more efficient and quicker to type. Within the context of accessing the Warcraft game client, even though we only care about 32-bits of address space and don't do much with the addresses other than pass them in to a memory reading function or add offsets to them, IntPtr is still preferable. IntPtr is explicit in what the programmer means, even if the chosen variables names and function names are lousy and comments are non-existent.
I believe that GameGUID (or whatever else you want to name it to save typing) fulfills the same requirement.
@cyper: re: "Their/they're" edit. I can see that now. Oddly enough I read Apoc's post, but misread your post on the usage. I shall have to mentally adjust my opinion of Apoc's sneakiness when reading any of his posts.