Since no one posted an update to this yet :p.
This works by checking the opcode of a game class that is null unless you are inside a game.
Code:
Warcraft_CheckGameState proc
;//Game state checking function
.data
FXN_GameClass dd 6FAA1988h
.code
;//Move GameClass into EAX
mov eax, FXN_GameClass
;//Check to see if we're in a game and return true/false.
.if byte ptr [eax] == 0h
mov eax, 0
.else
mov eax, 1
.endif
ret
Warcraft_CheckGameState endp