Source file: /~heha/messtech/matdde.zip/source/header/fastdde.h

//++++++++++++++++++++++++++++++
// FastDDE-Header
// S.Jacobi	(c)1997
//++++++++++++++++++++++++++++++


#define tdtTable	0x0010
#define tdtFloat	0x0001
#define tdtString	0x0002
#define tdtBool		0x0003
#define tdtError	0x0004
#define tdtBlank	0x0005
#define tdtType		0x0080
#define tdtFormat	0x0081


#define maxData 	8000	//Groesse in bytes eines simple_datablocks
#define TIMEOUT 	3000    //default timeout
#define CVT_DIGITS	10		//Anzahl Ziffern bei Konvertieren mit _ecvt()




/////////////////////////////DDEPoke
struct tag_FastDDEMemValues
{
	int rows;
	int columns;
	int offset;				//Offset durch tdtTable und n mal tdtFloat
	int quot;				//Anzahl der maxDataBloecke
	int rem;				//Rest 
	double huge* hPr;    	//Zeiger auf Matrix-Realteil
	BYTE far* hDataBlock;   //Zeiger auf DDE-Datenobjekt (von DdeAccessData() geliefert)
};

typedef struct tag_FastDDEMemValues FastDDEMemValues;

struct tag_PokeFuncParam
{
	DWORD idInst;
	DWORD hConv;
	UINT cbFormat;
	DWORD timeout;
	HSZ hszItem;
    Matrix* Data_Matrix;
};

typedef struct tag_PokeFuncParam PokeFuncParam;


/////////////////////////////DDERequest
struct tag_ReqFuncParam
{
	DWORD idInst;
	DWORD hConv;
	UINT cbFormat;
	DWORD timeout;
	HSZ hszItem;
	Matrix** DestMatrix;
};

typedef struct tag_ReqFuncParam ReqFuncParam;

struct tag_TableHeader
{
    WORD Table;
    WORD cbTable;
    WORD rows;
    WORD columns;
};

typedef struct tag_TableHeader TableHeader;

struct tag_FloatHeader
{
    WORD Float;
    WORD cbFloat;
};

typedef struct tag_FloatHeader FloatHeader;




// Prototypes for DDEPoke
void FastDDEMem( FastDDEMemValues* );
BOOL CFTextPoke( PokeFuncParam* );
BOOL FastDDEPoke( PokeFuncParam* );
int StringConvert( char*, double );


// Prototypes for DDEAdvise and DDERequest in ddelib.c
#ifdef __cplusplus 
extern "C"
{
#endif

void GetMatrixSize( char huge*, DWORD*, UINT*, UINT* );
BOOL Str2Double( double huge*, DWORD, char huge*, DWORD );
void Transpose(	double huge*, double huge*, UINT, UINT );
void HandleDdeError( UINT );

BOOL FastDDEReq( HDDEDATA, Matrix**  );
BOOL CFTextStringReq( HDDEDATA, Matrix** );
BOOL CFTextReq( HDDEDATA, Matrix** );

#ifdef __cplusplus 
}
#endif

// Prototypes for DDERequest
//void GetMatrixSize( char huge*, int*, int* );
//BOOL Str2Double( double huge*, char huge* );


// Prototypes for DDEAdvise
BOOL AdvFastDDEReq( HDDEDATA, char* );
BOOL AdvCFTextReq( HDDEDATA, char* );
BOOL AdvCFTextStringReq( HDDEDATA, char* );
//void GetMatrixSize( char huge*, int*, int* );                                               
//BOOL Str2Double( double huge*, char huge* );
                           
                                               
// Prototypes for DDEUnadvise
BOOL CallDDEUnadvise( HCONV, HSZ, WORD );
Detected encoding: ASCII (7 bit)2