[ uuid(7E6B4CE6-8836-4182-BBB9-50213578A7CF), version(1.0), helpstring("Helpers for the split function tlb - Egbert Nierop") ] library StringHelpers { // TLib : // Forward declare all types defined in this typelib [ dllname("oleaut32") ] module OleAut { [entry(0x60000000)] HRESULT _stdcall SafeArrayAccessData( [in] long psa, [out, retval] long* ppvData); [entry(0x60000001)] HRESULT _stdcall SafeArrayUnaccessData([in] long psa); [entry(0x60000002)] int _stdcall SafeArrayGetElemsize([in] long psa); [entry(0x60000003)] long _stdcall SafeArrayCreateVector( [in] short vt, [in] long lLbound, [in] int cElements); [entry(0x60000004)] HRESULT _stdcall SafeArrayPtrOfIndex( [in] long psa, [in] void* rgIndices, [out, retval] long** ppvData); [entry(0x60000005)] int _stdcall SysStringByteLenPtr([in] long bstrS); [entry(0x60000006)] int _stdcall SysStringByteLen([in] BSTR bstrS); [entry(0x60000007)] int _stdcall SysStringLen([in] BSTR bstrS); [entry(0x60000008)] int _stdcall SysStringLenPtr([in] void* bstrS); [entry(0x60000009)] BSTR _stdcall SysAllocStringLenBstr( [in] BSTR bstr, [in] int cch); [entry(0x6000000a)] BSTR _stdcall SysAllocStringLen( [in] void* bstrPtr, [in] int cch); [entry(0x6000000b)] int _stdcall SysAllocStringLenPtr( [in] void* bstrPtr, [in] int cch); [entry(0x6000000c)] int _stdcall SysReAllocStringLen( [in, out] BSTR* bstrPtr, [in] BSTR bstrPtrOld, [in] int LenToCopy); [entry(0x6000000d)] long _stdcall SysAllocStringByteLenPtr( [in] void* bstr, [in] int cch); [entry(0x6000000e)] BSTR _stdcall SysAllocStringByteLen( [in] BSTR bstrPtr, [in] int cch); [entry(0x6000000f)] HRESULT _stdcall VectorFromBstr( [in] BSTR bstr, [in, out] SAFEARRAY(unsigned char)** ppsa); [entry(0x60000010)] HRESULT _stdcall BstrFromVector( [in] SAFEARRAY(unsigned char) psa, [out, retval] BSTR* pbstr); [entry(0x60000011)] HRESULT _stdcall SafeArrayGetUBound( [in] long psa, [in] int nDim, [out, retval] long* plUbound); [entry(0x60000012)] HRESULT _stdcall SafeArrayGetLBound( [in] long psa, [in] int nDim, [out, retval] long* plUbound); }; [ dllname("ntdll") ] module ntdll { [entry(0x60000000)] void _cdecl MoveMemory( [in] void* pDest, [in] void* pSrc, [in] long ByteLen); [entry(0x60000001)] void _cdecl MoveMemoryFromStr( [in] void* pDest, [in] BSTR pSrc, [in] long ByteLen); [entry(0x60000002)] void _cdecl MoveMemoryToStr( [in] BSTR pDest, [in] void* pSrc, [in] long ByteLen); [entry(0x60000003)] void _cdecl MoveMemoryStr( [in] BSTR pDest, [in] BSTR pSrc, [in] long ByteLen); [entry(0x60000004)] void _stdcall memsetStr( [in] BSTR pDest, [in] short ThisChar, [in] long charcount); [entry(0x60000005)] long _cdecl wcsstr( [in] BSTR myString, [in] BSTR myChar); [entry(0x60000006)] long _cdecl wcschr( [in] BSTR myString, [in] long myChar); [entry(0x60000007)] void _stdcall FillMemory( [in] void* pDest, [in] int SizeBytes, [in] unsigned char bByte); }; [ dllname("msvbvm60") ] module ArrayPtr { [entry(0x60000000)] long _stdcall VarPtrStringArray([in] SAFEARRAY(BSTR)* Ptr); [entry(0x60000001)] long _stdcall VarPtrStr([in] long* Ptr); }; [ dllname("kernel32") ] module kernel { [entry(0x60000000)] void _stdcall MoveMemory( [in] void* pDest, [in] void* pSrc, [in] long ByteLen); [entry(0x60000001)] void _stdcall CopyMemory( [in] void* pDest, [in] void* pSrc, [in] long ByteLen); [entry(0x60000002)] void _stdcall MoveMemoryFromStr( [in] void* pDest, [in] BSTR pSrc, [in] long ByteLen); [entry(0x60000003)] void _stdcall MoveMemoryToStr( [in] BSTR pDest, [in] void* pSrc, [in] long ByteLen); [entry(0x60000004)] void _stdcall MoveMemoryStr( [in] BSTR pDest, [in] BSTR pSrc, [in] long ByteLen); [entry(0x60000005)] void _stdcall ZeroMemory( [in] void* pDest, [in] long cb); [entry(0x60000006)] void _stdcall FillMemory( [in] void* pDest, [in] int SizeBytes, [in] unsigned char bByte); [entry(0x60000007)] long _stdcall GetTickCount(); [entry(0x60000008)] long _stdcall lstrlenW([in] BSTR StringPtr); [entry(0x60000009)] long _stdcall lstrlenA([in] LPSTR StringPtr); [entry(0x6000000a)] long _stdcall lstrcpyA( [in, out] LPSTR dest, [in] LPSTR src); [entry(0x6000000b)] long _stdcall lstrcpyW( [in, out] LPWSTR dest, [in] BSTR src); [entry(0x6000000c)] long _stdcall lstrcmpiW( [in] BSTR lpstrP, [in] BSTR lpStrp2); [entry(0x6000000d)] long _stdcall lstrcmpW( [in] BSTR lpstrP, [in] BSTR lpStrp2); }; };