23#define TABLE_DEFAULT_SIZE 256
61 if (pStringTable ==
NULL)
63 ERR(
"Invalid hStringTable!\n");
110 if (pStringTable ==
NULL)
return NULL;
150 TRACE(
"%p\n", hStringTable);
153 if (pStringTable ==
NULL)
206 if (pStringTable ==
NULL)
208 ERR(
"Invalid hStringTable!\n");
243 if (pNewSlots ==
NULL)
262 TRACE(
"Couldn't allocate memory for a new string!\n");
274 TRACE(
"Couldn't find an empty slot!\n");
307 DWORD dwExtraDataSize)
315 if (pStringTable ==
NULL)
317 ERR(
"Invalid hStringTable!\n");
346 FIXME(
"Resize the string table!\n");
358 TRACE(
"Couldn't allocate memory for a new string!\n");
367 TRACE(
"Couldn't allocate memory for a new extra data!\n");
384 TRACE(
"Couldn't find an empty slot!\n");
411 TRACE(
"%p\n", hStringTable);
414 if (pSourceTable ==
NULL)
416 ERR(
"Invalid hStringTable!\n");
421 if (pDestinationTable ==
NULL)
423 ERR(
"Could not allocate a new string table!\n");
432 MyFree(pDestinationTable);
493 DWORD dwExtraDataSize)
497 TRACE(
"%p %x %p %u\n",
498 hStringTable, dwId, lpExtraData, dwExtraDataSize);
501 if (pStringTable ==
NULL)
503 ERR(
"Invalid hStringTable!\n");
507 if (dwId == 0 || dwId > pStringTable->
dwMaxSlots)
509 ERR(
"Invalid Slot id!\n");
513 if (pStringTable->
pSlots[dwId - 1].
dwSize < dwExtraDataSize)
515 ERR(
"Data size is too large!\n");
553 if (pStringTable ==
NULL)
555 ERR(
"Invalid hStringTable!\n");
612 if (pStringTable ==
NULL)
614 ERR(
"Invalid hStringTable!\n");
666 DWORD dwExtraDataSize)
670 TRACE(
"%p %x %p %u\n",
671 hStringTable, dwId, lpExtraData, dwExtraDataSize);
674 if (pStringTable ==
NULL)
676 ERR(
"Invalid hStringTable!\n");
680 if (dwId == 0 || dwId > pStringTable->
dwMaxSlots)
682 ERR(
"Invalid Slot id!\n");
688 ERR(
"Data size is too large!\n");
702 pStringTable->
pSlots[dwId - 1].
dwSize = dwExtraDataSize;
728 TRACE(
"%p %x\n", hStringTable, dwId);
731 if (pStringTable ==
NULL)
733 ERR(
"Invalid hStringTable!\n");
737 if (dwId == 0 || dwId > pStringTable->
dwMaxSlots)
769 TRACE(
"%p %x %p %p\n", hStringTable, dwId,
lpBuffer, lpBufferLength);
772 if (pStringTable ==
NULL)
774 ERR(
"Invalid hStringTable!\n");
779 if (dwId == 0 || dwId > pStringTable->
dwMaxSlots ||
782 WARN(
"Invalid string ID!\n");
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
static const WCHAR empty[]
static DWORD DWORD * dwLength
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
LPVOID WINAPI MyMalloc(DWORD dwSize)
VOID WINAPI MyFree(LPVOID lpMem)
struct _STRING_TABLE * PSTRING_TABLE
DWORD WINAPI pSetupStringTableLookUpString(HSTRING_TABLE hStringTable, LPWSTR lpString, DWORD dwFlags)
HSTRING_TABLE WINAPI pSetupStringTableInitialize(VOID)
HSTRING_TABLE WINAPI pSetupStringTableDuplicate(HSTRING_TABLE hStringTable)
DWORD WINAPI pSetupStringTableAddString(HSTRING_TABLE hStringTable, LPWSTR lpString, DWORD dwFlags)
#define TABLE_DEFAULT_SIZE
struct _STRING_TABLE STRING_TABLE
BOOL WINAPI pSetupStringTableSetExtraData(HSTRING_TABLE hStringTable, DWORD dwId, LPVOID lpExtraData, DWORD dwExtraDataSize)
struct _TABLE_SLOT * PTABLE_SLOT
LPWSTR WINAPI pSetupStringTableStringFromId(HSTRING_TABLE hStringTable, DWORD dwId)
DWORD WINAPI pSetupStringTableAddStringEx(HSTRING_TABLE hStringTable, LPWSTR lpString, DWORD dwFlags, LPVOID lpExtraData, DWORD dwExtraDataSize)
DWORD WINAPI pSetupStringTableLookUpStringEx(HSTRING_TABLE hStringTable, LPWSTR lpString, DWORD dwFlags, LPVOID lpExtraData, DWORD dwReserved)
VOID WINAPI pSetupStringTableDestroy(HSTRING_TABLE hStringTable)
BOOL WINAPI pSetupStringTableGetExtraData(HSTRING_TABLE hStringTable, DWORD dwId, LPVOID lpExtraData, DWORD dwExtraDataSize)
BOOL WINAPI pSetupStringTableStringFromIdEx(HSTRING_TABLE hStringTable, DWORD dwId, LPWSTR lpBuffer, LPDWORD lpBufferLength)
struct _TABLE_SLOT TABLE_SLOT
HSTRING_TABLE WINAPI pSetupStringTableInitializeEx(DWORD dwMaxExtraDataSize, DWORD dwReserved)
#define InterlockedExchangePointer(Target, Value)
GLuint GLsizei GLsizei * length
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
#define memcpy(s1, s2, n)
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags