NITFHEADER

typedef struct tagNITFHEADER 
{ 
   L_CHAR      *     pFHDR; 
   L_UINT            uCLEVEL; 
   L_CHAR      *     pSTYPE; 
   L_CHAR      *     pOSTAID; 
   L_CHAR      *     pFTITLE; 
   L_CHAR      *     pFSCLAS; 
   L_CHAR      *     pFSCLSY; 
   L_CHAR      *     pFSCODE; 
   L_CHAR      *     pFSCTLH; 
   L_CHAR      *     pFSREL; 
   L_CHAR      *     pFSDCTP; 
   L_CHAR      *     pFSDCXM; 
   L_CHAR      *     pFSDG; 
   L_CHAR      *     pFSCLTX; 
   L_CHAR      *     pFSCATP; 
   L_CHAR      *     pFSCAUT; 
   L_CHAR      *     pFSCRSN; 
   L_CHAR      *     pFSCTLN; 
   L_CHAR      *     pONAME; 
   L_CHAR      *     pOPHONE; 
   L_UINT            uHL; 
   L_UINT            uFL; 
   L_UINT            uFSCOP; 
   L_UINT            uFSCPYS; 
   L_UINT            uENCRYP; 
   L_UINT            uNUMI; 
   L_UINT      *     puLISH; 
   L_UINT      *     puLI; 
   L_UINT            uNUMS; 
   L_UINT      *     puLSSH; 
   L_UINT      *     puLS; 
   L_UINT            uNUMX; 
   L_UINT            uNUMT; 
   L_UINT      *     puLTSH; 
   L_UINT      *     puLT; 
   L_UINT            uNUMDES; 
   L_UINT      *     puLDSH; 
   L_UINT      *     puLD; 
   L_UINT            uNUMRES; 
   L_UINT      *     puLRESH; 
   L_UINT      *     puLRE; 
   L_UINT            uUDHDL; 
   L_UINT            uUDHOFL; 
   L_UCHAR     *     pUDHD; 
   L_UINT            uXHDL; 
   L_UINT            uXHDLOFL; 
   L_UCHAR     *     pXHD; 
   COLORREF          FBKGC; 
   NITFDATE          FSSRDT; 
   NITFDATE          FSDGDT; 
   NITFDATE          FSDCDT; 
   NITFDATETIME      FDT; 
   L_FLOAT           fFVER; 
}  NITFHEADER, *pNITFHEADER; 

The NITFHEADER structure provides information about NITF file header.

Members

L_CHAR * pFHDR

Pointer to a character string that contains the file profile name. Possible value is "NITF".

L_UINT uCLEVEL

Value that represents the complexity level for the NITF file.

L_CHAR * pSTYPE

Pointer to a character string that contains a symbol characters that represents the standard type or capability. Possible values are:

Value Meaning
"BF01" The file is formatted using ISO/IEC IS 12087-5.

L_CHAR * pOSTAID

Pointer to a character string that contains the identification code or name of the originating organization, system, station, or product. Note: Spaces are not allowed.

L_CHAR * pFTITLE

Pointer to a character string that contains the title of the file.

L_CHAR * pFSCLAS

Pointer to a character string that contains a symbol character that represents the security classification level of the entire file. Possible values are:

Value Meaning
"T" Top Secret
"S" Secret
"C" Confidential
"R" Restricted
"U" Unclassified

L_CHAR * pFSCLSY

Pointer to a character string that contains valid values that indicates the national or multinational security system used to classify the file.

If this member is all spaces its mean there is no security classification system for the NITF file.

L_CHAR * pFSCODE

Pointer to a character string that contains the file codewords that indicates the NITF file security compartments. If this member is all spaces its mean there is no codewords for the NITF file.

L_CHAR * pFSCTLH

Pointer to a character string that contains an additional file security control and/or handling instructions (caveats). If this member is all spaces, it shall imply that no additional control and handling instructions apply to the NITF file.

L_CHAR * pFSREL

Pointer to a character string that contains a valid list of country and/or multilateral entity codes to which countries and/or multilateral entities the file is authorized for release. Possible values in the list are one or more country codes as found in FIPS PUB 10-4 separated by a single space. If this member is all spaces, it shall imply that no file release instructions apply.

L_CHAR * pFSDCTP

Pointer to a character string that contains a symbol value that represents the file security declassification type or file downgrading instructions. Possible values are:

Value Meaning
"DD" Declassify on a specific date.
"DE" Declassify upon occurrence of an event.
"GD" Downgrade to a specified level on a specific date.
"GE" Downgrade to a specified level upon occurrence of an event.
"O" OADR
"X" Exempt from automatic declassification.

L_CHAR * pFSDCXM

Pointer to a character string that contains the file declassification exemption. If this member is all spaces, it shall imply that a file declassification exemption does not apply.

L_CHAR * pFSDG

Pointer to a character string that contains a symbol value that represents the file downgrade classification level.

This member is valid only if the value of the pFSDCTP member is set to "GD" or "GE" string. Possible values are:

Value Meaning
"S" Secret.
"C" Confidential.
"R" Restricted.

If this member contains a space, it shall imply that file security downgrading does not apply.

L_CHAR * pFSCLTX

Pointer to a character string that contains the file classification text that includes the identification of declassification or downgrading event.

This member is valid only if the value of the pFSDCTP member is set to "DE" or "GE" strings. It may also be used to identify multiple classification sources and/or any other special handling rules. If this member is all spaces, it shall imply that additional information about file classification does not apply.

L_CHAR * pFSCATP

Pointer to a character string that contains a symbol value that represents the file classification authority type. Possible values are:

Value Meaning
"O" Original classification authority.
"D" Derivative from a single source.
"M" Derivative from multiple sources

If this member contains spaces, it shall imply that file classification authority type does not apply.

L_CHAR * pFSCAUT

Pointer to a character string that contains the file classification authority dependent on the value of the pFSCATP member. Values are user-defined free text which should contain the following information:

If the Value of pFSCATP member: The information of pFSCAUT member contains:
"O" Original classification authority name and position or personal identifier.
"D" Title of the document or security classification guide used to classify the file.
"M" Derive-Multiple if the file classification was derived from multiple sources.

In the latter case, the file originator will maintain a record of the sources used in accordance with existing security directives. One of the multiple sources may also be identified in File Classification Text if desired.

If this member is all spaces, it shall imply that no file classification authority applies.

L_CHAR * pFSCRSN

Pointer to a character string that contains a symbol character that represents the file classification reason. Possible values range from "A" to "G". If this member contains a space, it shall imply that no file classification reason applies.

L_CHAR * pFSCTLN

Pointer to a character string that contains the file security control number. The format of the security control number shall be in accordance with the regulations governing the appropriate security channel(s). If this member is all spaces, it shall imply that no file security control number applies.

L_CHAR * pONAME

Pointer to a character string that contains the name for the operator who originated the file. If the member is all spaces, it shall represent that no operator is assigned responsibility for origination.

L_CHAR * pOPHONE

Pointer to a character string that contains the phone number for the operator who originated the file. If the member is all spaces, it shall represent that no phone number is available for the operator assigned responsibility for origination.

L_UINT uHL

Value that represents the length, in bytes, of the NITF file header.

L_UINT uFL

Value that represents the length, in bytes, of the entire file including all headers, sub-headers, and data.

L_UINT uFSCOP

Value that represents the copy number of the file. If the value of this member is 0, it indicates that no tracking of numbered file copies.

L_UINT uFSCPYS

Value that represents the total number of copies of the file.

L_UINT uENCRYP

Reserved for future use. Pass 0.

L_UINT uNUMI

Value that represents the number of separate image segments included in the file. If the value of this member is 0, it indicates that no image segments are included in the NITF file.

L_UINT * puLISH

Pointer to a value that represents the valid length, in bytes, for the nth image sub-header, where "n" is the number of the IS counting from the first IS ("n"=001) in order of the image segments appearance in the file. Possible values for "n" range from 001 to 999.

L_UINT * puLI

Pointer to an array of values that represent the valid length, in bytes, of the nth IS, where "n" is the number of the IS counting from the first IS ("n"=001) in order of the IS appearance in the file. Possible values for "n" range from 001 to 999. If the IS is compressed, the length after compression shall be used. This member shall occur as many times as specified in the uNUMI member.

The value of uNUMI member is the number of elements of this puLI array.

L_UINT uNUMS

Value that represents the number of separate graphic segments included in the file. This member shall be 0 if no graphic segments are included in the NITF file.

L_UINT * puLSSH

Pointer to an array of values that represent the length, in bytes, for the nth graphic sub-header, where "n" is the number of the graphic segment counting from the first GS ("n"=001) in the order of the graphic segments appearance in the file. Possible values for "n" range from 001 to 999.

The value of uNUMS member is the number of elements of this puLSSH array.

L_UINT * puLS

Pointer to an array of values that represent the valid length, in bytes, of the nth GS, where "n" is the number of the GS, counting from the first GS ("n"=001) in the order of the graphic segments appearance in the file. Possible values for "n" range from 001 to 999.

The value of uNUMS member is the number of elements of this puLS array.

L_UINT uNUMX

Reserved for future use. Pass 0.

L_UINT uNUMT

Value that represents the number of separate text segment(s) included in the file. This member shall be 0 if no text segments are included in the file.

L_UINT * puLTSH

Pointer to an array of values that represent the valid length, in bytes, for the nth text sub-header, where "n" is the number of the text segment, counting from the first text segment ("n"=001) in the order of the text segments appearance in the file. Possible values for "n" range from 001 to 999.

The value of uNUMT member is the number of elements of this puLTSH array.

L_UINT * puLT

Pointer to an array of values that represent the valid length, in bytes, for the first text item.

The value of uNUMT member is the number of elements of this puLT array.

If the value of uNUMT member is 0, then this member will be ignored.

L_UINT uNUMDES

Value that represents the number of separate DESs included in the file. This member shall be 0 if no DESs are included in the file.

L_UINT * puLDSH

Pointer to an array of values that represent the valid length, in bytes, for the nth DES sub-header, where "n" is the number of the DES counting from the first DES ("n" = 001) in order of the DESs appearance in the file. Possible values for "n" range from 001 to 999.

The value of uNUMDES member is the number of elements of this puLDSH array.

If the value of uNUMDES member is 0, then this member will be ignored.

L_UINT * puLD

Pointer to an array of values that represent the valid length, in bytes, of the data in the nth DES, where "n" is the number of the DES counting from the first DES (n=001) in order of the DESs appearance in the file.

The value of uNUMDES member is the number of elements of this puLD array.

If the value of uNUMDES member is 0, then this member will be ignored.

L_UINT uNUMRES

Value that represents the number of separate RESs included in the file. The user must pass 0 to this member if no RESs are included in the file.

L_UINT * puLRESH

Pointer to an array of values that represent the valid length, in bytes, for the nth RES sub-header, where "n" is the number of the RES counting from the first RES (n = 001) in order for RESs appearance in the file.

The value of uNUMRES member is the number of elements of this puLRESH array.

If the value of uNUMRES member is 0, then this member will be ignored.

L_UINT * puLRE

Pointer to an array of values that represent the length of nth reserved extension segment. This member shall contain a valid length, in bytes, for the nth RES sub-header, where "n" is the number of the RES counting from the first RES ("n"=001) in order of the RES appearance in the file.

The value of uNUMRES member is the number of elements of this puLRE array.

If the value of uNUMRES member is 0, then this member will be ignored.

L_UINT uUDHDL

Value that represents the user-defined header data length. A value of 0 shall represent that no TREs are included in the pUDHD member. If a TRE exists, the member shall contain the sum of the length of all the TREs appearing in the pUDHD member + 3 bytes (length of uUDHOFL member).

L_UINT uUDHOFL

Value that represents the user-defined header overflow. This member shall contain 0 if the TRE in pUDHD member do not overflow into a DES, or shall contain the sequence number of the DES into which they do overflow. This member will be ignored if the uUDHDL member is 0.

L_UCHAR * pUDHD

Pointer to a character string that contains user-defined TRE data. The length of this member shall be the value contained by the uUDHDL member - 3 bytes. Tagged record extensions shall appear one after the other with no intervening bytes.

The first byte of this member shall be the first byte of the first tagged record extension appearing in the member. The last byte of this member shall be the last byte of the last tagged record extension to appear in the member. This member will be ignored if the uUDHDL member is 0.

L_UINT uXHDL

Value that represents the file extended sub-header data length. A value of 0 shall represent that no TREs are included in the pXHD member. If a TRE exists, the member shall contain the sum of the length of all the TRE appearing in the XHD member + 3 bytes (length of uXHDLOFL member). If a TRE is too long to fit in the XHD member or the pUDHD member it shall be put in the TRE overflow DES with DESID set to the value TRE_OVERFLOW.

L_UINT uXHDLOFL

Value that represents the file extended sub-header overflow. This member shall contain 0 if the TREs in pXHD do not overflow into a DES, or shall contain the sequence number of the DES into which they do overflow. This member will be ignored if the pXHD member contains 0.

L_UCHAR * pXHD

Pointer to a character string that contains the file extended sub-header data. If present, this member shall contain TREs approved and under configuration management of the ISMC. The length of this member shall be the length specified by the uXHDL member - 3 bytes. TREs shall appear one after the other with no intervening bytes. The first byte of this member shall be the first byte of the first TRE appearing in the member. The last byte of this member shall be the last TRE to appear in the member. This member shall be ignored if the value of the uXHDL member is 0.

COLORREF FBKGC

COLORREF structure that contains a value that represents the file background color.

NITFDATE FSSRDT

NITFDATE structure that contains information about the date of the source used to derive the classification of the file. In the case of multiple sources, the date of the most recent source will be used.

NITFDATE FSDGDT

NITFDATE structure that contains information about the date on which a file is to be downgraded.

This member is valid only if the value of the pFSDCTP member is set to "GD" string.

NITFDATE FSDCDT

NITFDATE structure that contains information about the date on which a file is to be declassified.

This member is valid only if the value of the pFSDCTP member is set to "DD" string.

NITFDATETIME FDT

NITFDATETIME structure that contains information about the file date and time. This member shall contain the time (UTC) (Zulu) of the files origination.

L_FLOAT fFVER

Value that represents the file version. This member shall contain a value that uniquely denoting the version. Possible value is 02.10.

Comments

pNITFHEADER is a pointer to a NITFHEADER structure. Where a function parameter type is pNITFHEADER, declare an NITFHEADER variable and pass the variable's address in the parameter. Declaring a pNITFHEADER variable is necessary only if the program requires a pointer.

The following functions make use of this structure:

L_NITFGetNITFHeader

L_NITFSetNITFHeader

Help Version 21.0.2020.8.7
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.