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.
Pointer to a character string that contains the file profile name. Possible value is "NITF".
Value that represents the complexity level for the NITF file.
Pointer to a character string that contains a symbol characters that represents the standard type or capability. Possible value is:
Value | Meaning |
---|---|
"BF01" | The file is formatted using ISO/IEC IS 12087-5. |
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.
Pointer to a character string that contains the title of the file.
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 |
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.
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.
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.
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.
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. |
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.
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.
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.
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.
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.
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.
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.
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.
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.
Value that represents the length, in bytes, of the NITF file header.
Value that represents the length, in bytes, of the entire file including all headers, sub-headers, and data.
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.
Value that represents the total number of copies of the file.
Reserved for future use. Pass 0.
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.
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.
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.
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.
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.
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.
Reserved for future use. Pass 0.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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 structure that contains a value that represents the file background color.
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 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 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 structure that contains information about the file date and time. This member shall contain the time (UTC) (Zulu) of the files origination.
Value that represents the file version. This member shall contain a value that uniquely denoting the version. Possible value is 02.10.
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: