On entry to the GreEscape routine, the stack frame contains:
┌───────────────┬───────────────┬──────────────────────────────┐ │Parameter │Data Type │Description │ ├───────────────┼───────────────┼──────────────────────────────┤ │hdc │HDC │Device context handle. │ ├───────────────┼───────────────┼──────────────────────────────┤ │lEscape │LONG │Escape code. │ ├───────────────┼───────────────┼──────────────────────────────┤ │cInCount │LONG │Number of bytes pointed to by │ │ │ │pInData. │ ├───────────────┼───────────────┼──────────────────────────────┤ │pInData │PBYTE │Pointer to input data │ │ │ │structure. │ ├───────────────┼───────────────┼──────────────────────────────┤ │pcOutCount │PLONG │Pointer to the number of bytes│ │ │ │in output data structure. If │ │ │ │the escape code is one that │ │ │ │returns data in the output │ │ │ │data structure, the handling │ │ │ │routine changes the value │ │ │ │addressed by pcOutCount to │ │ │ │show the number of bytes │ │ │ │returned. │ ├───────────────┼───────────────┼──────────────────────────────┤ │pOutData │PLONG │Pointer to output data │ │ │ │structure. │ ├───────────────┼───────────────┼──────────────────────────────┤ │pInstance │PVOID │Pointer to instance data. │ ├───────────────┼───────────────┼──────────────────────────────┤ │lFunction │ULONG │High-order WORD=flags; │ │ │ │Low-order WORD=NGreEscape. │ └───────────────┴───────────────┴──────────────────────────────┘