#ifndef _COMMON_DDEDATA_HPP_
#define _COMMON_DDEDATA_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_DDE_HPP_
#include <common/dde.hpp>
#endif

class DDEData : public DDEDATA
{
public:
	DDEData(void);
	~DDEData();
	WORD mustRespond(void)const;
	void mustRespond(WORD mustRespond);
	WORD mustRelease(void)const;
	void mustRelease(WORD mustRelease);
	WORD isResponseForRequest(void)const;
	void isResponseForRequest(WORD isResponseForRequest);
	short getFormat(void)const;
	void setFormat(short format);
	WORD setData(char FAR *npDDEData,DWORD sizeData);
	char FAR *getData(void);
private:
};

inline
DDEData::DDEData(void)
{
	DDEDATA::fResponse=0;
	DDEDATA::fRelease=0;
	DDEDATA::fAckReq=0;
	DDEDATA::cfFormat=0;
	DDEDATA::Value[0]=0;
}

inline
DDEData::~DDEData()
{
}

inline
WORD DDEData::mustRespond(void)const
{
  return DDEDATA::fResponse;
}

inline
void DDEData::mustRespond(WORD mustRespond)
{
  DDEDATA::fResponse=mustRespond;
}

inline
WORD DDEData::mustRelease(void)const
{
	return DDEDATA::fRelease;
}

inline
void DDEData::mustRelease(WORD mustRelease)
{
	DDEDATA::fRelease=mustRelease;
}

inline
WORD DDEData::isResponseForRequest(void)const
{
  return DDEDATA::fAckReq;
}

inline
void DDEData::isResponseForRequest(WORD isResponseForRequest)
{
  DDEDATA::fAckReq=isResponseForRequest;
}

inline
short DDEData::getFormat(void)const
{
  return DDEDATA::cfFormat;
}

inline
void DDEData::setFormat(short format)
{
  DDEDATA::cfFormat=format;
}

inline
WORD DDEData::setData(char FAR *npLinkData,DWORD sizeData)
{
  if(!npLinkData)return FALSE;
	::memcpy(DDEDATA::Value,npLinkData,sizeData);
  return TRUE;
}

inline
char FAR *DDEData::getData(void)
{
  return (char FAR *)DDEData::Value;
}
#endif

