#pragma once #ifdef LISTSTRUCT_EXPORTS #define LISTSTRUCT_API extern "C" _declspec(dllexport) #else #define LISTSTRUCT_API extern "C" _declspec(dllimport) #endif #define LST_NAME_MAXLEN 256 #define LST_VALUE_MAXLEN 256 #define LST_STR_MAXLEN 4096 struct ECOMDataItem { wchar_t Name[LST_NAME_MAXLEN]; wchar_t Value[LST_VALUE_MAXLEN]; }; struct ECOMDataItemList { int nCount; ECOMDataItem *pDataItems; }; extern "C" { LISTSTRUCT_API ECOMDataItemList* LST_DataListNew(); LISTSTRUCT_API bool LST_DataListAddItem(ECOMDataItemList *pDataList,const wchar_t* wszName,const wchar_t* wszValue); LISTSTRUCT_API bool LST_DataListDecode(const wchar_t* wszData,ECOMDataItemList *outpDataList); LISTSTRUCT_API bool LST_DataListEncode(ECOMDataItemList *pDataList,wchar_t* outwszData); LISTSTRUCT_API void LST_DataListRelease(ECOMDataItemList *pDataList); };