#ifndef _FS_PDFNAMETREE_C_H_
#define _FS_PDFNAMETREE_C_H_

#ifdef __cplusplus
extern "C" {
#endif



typedef enum _FSPDFNameTreeType {
e_FSDests = 1,
e_FSJavaScript = 2,
e_FSEmbeddedFiles = 3,
e_FSPages = 4,
e_FSTemplates = 5,
}FSPDFNameTreeType;


FSErrorCode FSDK_PDFNameTree_Create(const FS_PDFDOC_HANDLE document, FSPDFNameTreeType type, FS_PDFNAMETREE_HANDLE* pdfnametree_return_value);
FSErrorCode FSDK_PDFNameTree_Create0(FS_PDFNAMETREE_HANDLE* pdfnametree_return_value);
FSErrorCode FSDK_PDFNameTree_Release(FS_PDFNAMETREE_HANDLE pdfnametree_handle);
FSErrorCode FSDK_PDFNameTree_IsEmpty(FS_PDFNAMETREE_HANDLE pdfnametree_handle, FS_BOOL* return_value);
FSErrorCode FSDK_PDFNameTree_GetType(FS_PDFNAMETREE_HANDLE pdfnametree_handle, FSPDFNameTreeType* return_value);
FSErrorCode FSDK_PDFNameTree_HasName(FS_PDFNAMETREE_HANDLE pdfnametree_handle, const wchar_t* name, FS_BOOL* return_value);
FSErrorCode FSDK_PDFNameTree_GetCount(FS_PDFNAMETREE_HANDLE pdfnametree_handle, int* return_value);
FSErrorCode FSDK_PDFNameTree_GetName(FS_PDFNAMETREE_HANDLE pdfnametree_handle, int index, FS_WSTR* return_value);
FSErrorCode FSDK_PDFNameTree_GetObj(FS_PDFNAMETREE_HANDLE pdfnametree_handle, const wchar_t* name, FS_PDFOBJECT_HANDLE* return_value);
FSErrorCode FSDK_PDFNameTree_SetObj(FS_PDFNAMETREE_HANDLE pdfnametree_handle, const wchar_t* name, FS_PDFOBJECT_HANDLE pdf_object, FS_BOOL* return_value);
FSErrorCode FSDK_PDFNameTree_Rename(FS_PDFNAMETREE_HANDLE pdfnametree_handle, const wchar_t* old_name, const wchar_t* new_name, FS_BOOL* return_value);
FSErrorCode FSDK_PDFNameTree_Add(FS_PDFNAMETREE_HANDLE pdfnametree_handle, const wchar_t* name, FS_PDFOBJECT_HANDLE pdf_object, FS_BOOL* return_value);
FSErrorCode FSDK_PDFNameTree_RemoveObj(FS_PDFNAMETREE_HANDLE pdfnametree_handle, const wchar_t* name, FS_BOOL* return_value);
FSErrorCode FSDK_PDFNameTree_RemoveAllObjs(FS_PDFNAMETREE_HANDLE pdfnametree_handle, FS_BOOL* return_value);
#ifdef __cplusplus
}
#endif
#endif
