//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1995 - 1999 // // File: gttran.h // // Contents: Generic Transport APIs // // APIs: // GTOpen // GTSend // GTFree // GTReceive // GTClose // GTRecSend // GTInitSrv // GTUnInitSrv // // Created KeithV //-------------------------------------------------------------------------- #ifndef _HGTTRAN_H_ #define _HGTTRAN_H_ #include #ifdef __cplusplus extern "C" { #endif //+------------------------------------------------------------------------- // Encoding types // // Because the Composit type for ASN is 0x30, we will define this to // be the encoding type for it. //-------------------------------------------------------------------------- #define ASCII_ENCODING 0x0 #define TLV_ENCODING 0x1 #define IDL_ENCODING 0x2 #define OCTET_ENCODING 0x3 #define ASN_ENCODING 0x30 //+------------------------------------------------------------------------- // Functions will allow you to read, write or both // To do both, OR (|) them together. //-------------------------------------------------------------------------- #define GTREAD 0x00000001 #define GTWRITE 0x00000002 typedef ULONG_PTR HGT; //+------------------------------------------------------------------------- // Any receiving (listening) DLL must export these functions //-------------------------------------------------------------------------- typedef DWORD (__stdcall * PFNGTRecSend) (DWORD dwEncoding, DWORD cb, const BYTE * pbIn, DWORD * pcbOut, BYTE ** ppbOut); typedef DWORD (__stdcall * PFNGTFree) (BYTE * pb); //+------------------------------------------------------------------------- // Functions used by and application that wants to send a message // Just like File IO //-------------------------------------------------------------------------- DWORD __stdcall GTOpen(HGT * phTran, const TCHAR * szLibrary, const TCHAR * tszBinding, DWORD fOpen); DWORD __stdcall GTSend(HGT hTran, DWORD dwEncoding, DWORD cbSendBuff, const BYTE * pbSendBuff); DWORD __stdcall GTFree(HGT hTran, BYTE * pb); DWORD __stdcall GTReceive(HGT hTran, DWORD * pdwEncoding, DWORD * pcbReceiveBuff, BYTE ** ppbReceiveBuff); DWORD __stdcall GTClose(HGT hTran); //+------------------------------------------------------------------------- // Listening functions for a listening application. // The GTFree prototype is also used as specified above //-------------------------------------------------------------------------- DWORD __stdcall GTRecSend(DWORD dwEncoding, DWORD cb, const BYTE * pbIn, DWORD * pcbOut, BYTE ** ppbOut); //+------------------------------------------------------------------------- // Additonal private listening functions for a listening application. // Not generally implemented. //-------------------------------------------------------------------------- DWORD __stdcall GTRecSendNoEncrypt(DWORD dwEncoding, DWORD cb, const BYTE * pbIn, DWORD * pcbOut, BYTE ** ppbOut); //+------------------------------------------------------------------------- // Used to init a receiving DLL, particularly useful for HTTP BGI, CGI application //-------------------------------------------------------------------------- DWORD __stdcall GTInitSrv(TCHAR * tszLibrary); DWORD __stdcall GTUnInitSrv(void); #ifdef __cplusplus } #endif #endif