Open topic with navigation

# fpGetSubFileMetaData()

This function extracts metadata from mail stores, mail messages, and non-mail items in an NSF file. See Extract Mail Metadata.

## Syntax

    int (pascal *fpGetSubFileMetaData)  (
    			    void                      *pFile,
    			    KVGetSubFileMetaArg        metaArg,
    		    KVSubFileMetaData         *metaData);

## Arguments

`pFile` | The identifier of the file. This is a file handle returned from fpOpenFile().
`metaArg` | A pointer to the KVGetSubFileMetaArg structure, which defines metadata tags whose values are retrieved. Before you initialize the `KVGetSubFileMetaArg` structure, use the `KVStructInit` macro to initialize the `KVStructHead` structure.
`metaData` | A pointer to the KVSubFileMetaData structure, which contains the retrieved metadata values.

## Returns

- If the metadata is retrieved, the return value is `KVERR_Success`.
- If the metadata is not retrieved, the return value is an error code.

## Discussion

- When you pass in `0` for `metaArg->metaNameCount`, and `NULL` for `metaArg->metaNameArray`, a set of default metadata is retrieved. See Extract Mail Metadata.
- After the metadata is retrieved, call fpFreeStruct() to free the memory allocated by this function.
- If a field is repeated in an EML or MBX mail header, the values in each instance of the field are concatenated and returned as one field. The values are separated by five pound signs (`#####`) as a delimiter.

## Example

    KVSubFileMetaData  metaData = NULL;

    KVStructInit(&metaArg);

    /* retrieve all the default metadata elements */
    metaArg.metaNameCount = 0;
    metaArg.metaNameArray = NULL;
    metaArg.index = Index;

    error = extractInterface->fpGetSubFileMetaData(pFile,&metaArg,&metaData);
    ...

    extractInterface->fpFreeStruct(pFile,metaData);
    metaData = NULL;

    /* retrieve specific metadata fields */
    KVMetaName   pName[2];
    KVMetaNameRec names[2];

    names[0].type = KVMetaNameType_Integer;
    names[0].name.iname = KVPR_SUBJECT;

    names[1].type = KVMetaNameType_Integer;
    names[1].name.iname = KVPR_DISPLAY_TO;

    pName[0] = &names[0];
    pName[1] = &names[1];

    metaArg.metaNameCount = 2;
    metaArg.metaNameArray = pName;
    metaArg.index = Index;

    error = extractInterface->fpGetSubFileMetaData (pFile,&metaArg,&metaData);
    ...
    extractInterface->fpFreeStruct(pFile,metaData);
    metaData = NULL;

© 2006-2018 EntIT Software LLC, a Micro Focus company | Send documentation feedback to Micro Focus Close Send documentation feedback To open the configured email client on this computer, open an email window. Otherwise, copy the information below to a web mail client, and send this email to swpdl.idoldocsfeedback@microfocus.com. We appreciate your feedback! Product: Topic Title: Help Topic: Feedback:

_FT_HTML5_bannerTitle.htm