Retrieves a buffer for the text data at a specified index in the text segment.
#include "ltntf.h"
L_LTNTF_API L_INT L_NITFGetTextSegment(hNitf, uIndex, pTextBuffer, puBufferSize)
Handle to an existing NITF file, created by calling the L_NITFCreate function.
A zero-based Index of the text data in the text segment.
Pointer to a buffer to be updated with the text data.
Pointer to a variable to be updated with the length of the text data intended to retrieve.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
To use this function:
Call this function passing pTextBuffer as NULL to obtain the text length in the puBufferSize parameter.
Allocate a buffer of size (*puBufferSize + 1).
Call this function passing the allocated buffer to the pTextBuffer parameter to obtain the text data.
L_INT NITFGetTextSegmentExample(L_VOID)
{
L_INT nRet = SUCCESS;
HNITF hNitf;
L_UINT uFlags = 0;
TXTHEADER TextHeader;
L_UINT uCount;
L_UINT i = 0;
memset(&TextHeader, 0, sizeof(TXTHEADER));
//Create hNitf Handle and Parse the NITF File
nRet =L_NITFCreate (&hNitf, MAKE_IMAGE_PATH(TEXT("test.ntf")));
if(nRet !=SUCCESS)
return nRet;
//Check if the hNITF is Empty or Invalid
uFlags = L_NITFGetStatus(hNitf);
if((uFlags & NITF_FILE_EMPTY) == NITF_FILE_EMPTY)
{
MessageBox(NULL,TEXT("NITF File is Empty"),NULL,MB_OK);
return FAILURE;
}
if((uFlags & NITF_FILE_VALID) != NITF_FILE_VALID)
{
MessageBox(NULL,TEXT("NITF File is Invalid"),NULL,MB_OK);
return FAILURE;
}
// Update the Text Header
uCount = L_NITFGetTextHeaderCount(hNitf);
for( i = 0; i < uCount; ++i)
{
L_UINT uBufferSize =0;
L_CHAR * pTextBuffer = NULL;
L_NITFGetTextSegment(hNitf, i, NULL, &uBufferSize);
if(uBufferSize > 0)
{
pTextBuffer = (L_CHAR*)malloc(uBufferSize + 1);
if(pTextBuffer)
{
L_NITFGetTextSegment(hNitf, i, pTextBuffer, &uBufferSize);
MessageBoxA(NULL, pTextBuffer, "Text Segment", 0);
free(pTextBuffer);
pTextBuffer = NULL;
}
}
}
nRet =L_NITFDestroy(&hNitf);
if(nRet !=SUCCESS)
return nRet;
return SUCCESS;
}