Add FPDF_GetSecurityHandlerRevision
[pdfium.git] / fpdfsdk / include / fpdfdoc.h
index 35c2c96..54ede40 100644 (file)
-// Copyright 2014 PDFium Authors. All rights reserved.\r
-// Use of this source code is governed by a BSD-style license that can be\r
-// found in the LICENSE file.\r
\r
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
-\r
-#ifndef _FPDFDOC_H_\r
-#define _FPDFDOC_H_\r
-\r
-#include "fpdfview.h"\r
-\r
-// Exported Functions\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-\r
-// Function: FPDFBookmark_Find\r
-//                     Find a bookmark in the document, using the bookmark title.\r
-// Parameters: \r
-//                     document        -       Handle to the document. Returned by FPDF_LoadDocument or FPDF_LoadMemDocument.\r
-//                     title           -       The UTF-16LE encoded Unicode string for the bookmark title to be searched. Can't be NULL.\r
-// Return value:\r
-//                     Handle to the found bookmark item. NULL if the title can't be found.\r
-// Comments:\r
-//                     It always returns the first found bookmark if more than one bookmarks have the same title.\r
-//\r
-DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_Find(FPDF_DOCUMENT document, FPDF_WIDESTRING title);\r
-\r
-// Function: FPDFBookmark_GetDest\r
-//                     Get the destination associated with a bookmark item.\r
-// Parameters:\r
-//                     document        -       Handle to the document.\r
-//                     bookmark        -       Handle to the bookmark.\r
-// Return value:\r
-//                     Handle to the destination data. NULL if no destination is associated with this bookmark.\r
-//\r
-DLLEXPORT FPDF_DEST STDCALL FPDFBookmark_GetDest(FPDF_DOCUMENT document, FPDF_BOOKMARK bookmark);\r
-\r
-// Function: FPDFBookmark_GetAction\r
-//                     Get the action associated with a bookmark item.\r
-// Parameters:\r
-//                     bookmark        -       Handle to the bookmark.\r
-// Return value:\r
-//                     Handle to the action data. NULL if no action is associated with this bookmark. In this case, the \r
-//                     application should try FPDFBookmark_GetDest.\r
-//\r
-DLLEXPORT FPDF_ACTION STDCALL FPDFBookmark_GetAction(FPDF_BOOKMARK bookmark);\r
-\r
-#define PDFACTION_UNSUPPORTED          0               // Unsupported action type.\r
-#define PDFACTION_GOTO                         1               // Go to a destination within current document.\r
-#define PDFACTION_REMOTEGOTO           2               // Go to a destination within another document.\r
-#define PDFACTION_URI                          3               // Universal Resource Identifier, including web pages and \r
-                                                                                       // other Internet based resources.\r
-#define PDFACTION_LAUNCH                       4               // Launch an application or open a file.\r
-\r
-// Function: FPDFAction_GetType\r
-//                     Get type of an action.\r
-// Parameters:\r
-//                     action          -       Handle to the action.\r
-// Return value:\r
-//                     A type number as defined above.\r
-//\r
-DLLEXPORT unsigned long STDCALL FPDFAction_GetType(FPDF_ACTION action);\r
-\r
-// Function: FPDFAction_GetDest\r
-//                     Get destination of an action.\r
-// Parameters:\r
-//                     document        -       Handle to the document.\r
-//                     action          -       Handle to the action. It must be a GOTO or REMOTEGOTO action.\r
-// Return value:\r
-//                     Handle to the destination data.\r
-// Comments:\r
-//                     In case of remote goto action, the application should first use FPDFAction_GetFilePath to\r
-//                     get file path, then load that particular document, and use its document handle to call this\r
-//                     function.\r
-//\r
-DLLEXPORT FPDF_DEST STDCALL FPDFAction_GetDest(FPDF_DOCUMENT document, FPDF_ACTION action);\r
-\r
-// Function: FPDFAction_GetURIPath\r
-//                     Get URI path of a URI action.\r
-// Parameters:\r
-//                     document        -       Handle to the document.\r
-//                     action          -       Handle to the action. Must be a URI action.\r
-//                     buffer          -       A buffer for output the path string. Can be NULL.\r
-//                     buflen          -       The length of the buffer, number of bytes. Can be 0.\r
-// Return value:\r
-//                     Number of bytes the URI path consumes, including trailing zeros.\r
-// Comments:\r
-//                     The URI path is always encoded in 7-bit ASCII.\r
-// \r
-//                     The return value always indicated number of bytes required for the buffer, even when there is\r
-//                     no buffer specified, or the buffer size is less then required. In this case, the buffer will not\r
-//                     be modified.\r
-//\r
-DLLEXPORT unsigned long STDCALL FPDFAction_GetURIPath(FPDF_DOCUMENT document, FPDF_ACTION action, \r
-                                                                                                         void* buffer, unsigned long buflen);\r
-\r
-// Function: FPDFDest_GetPageIndex\r
-//                     Get page index of a destination.\r
-// Parameters:\r
-//                     document        -       Handle to the document.\r
-//                     dest            -       Handle to the destination.\r
-// Return value:\r
-//                     The page index. Starting from 0 for the first page.\r
-//\r
-DLLEXPORT unsigned long STDCALL FPDFDest_GetPageIndex(FPDF_DOCUMENT document, FPDF_DEST dest);\r
-\r
-// Function: FPDFLink_GetLinkAtPoint\r
-//                     Find a link at specified point on a document page.\r
-// Parameters:\r
-//                     page            -       Handle to the document page.\r
-//                     x                       -       The x coordinate of the point, specified in page coordinate system.\r
-//                     y                       -       The y coordinate of the point, specified in page coordinate system.\r
-// Return value:\r
-//                     Handle to the link. NULL if no link found at that point.\r
-// Comments:\r
-//                     The point coordinates are specified in page coordinate system. You can convert coordinates \r
-//                     from screen system to page system using FPDF_DeviceToPage functions.\r
-//\r
-DLLEXPORT FPDF_LINK STDCALL FPDFLink_GetLinkAtPoint(FPDF_PAGE page, double x, double y);\r
-\r
-// Function: FPDFLink_GetDest\r
-//                     Get destination info of a link.\r
-// Parameters:\r
-//                     document        -       Handle to the document.\r
-//                     link            -       Handle to the link. Returned by FPDFLink_GetLinkAtPoint.\r
-// Return value:\r
-//                     Handle to the destination. NULL if there is no destination associated with the link, in this case\r
-//                     the application should try FPDFLink_GetAction.\r
-//\r
-DLLEXPORT FPDF_DEST STDCALL FPDFLink_GetDest(FPDF_DOCUMENT document, FPDF_LINK link);\r
-\r
-// Function: FPDFLink_GetAction\r
-//                     Get action info of a link.\r
-// Parameters:\r
-//                     link            -       Handle to the link.\r
-// Return value:\r
-//                     Handle to the action. NULL if there is no action associated with the link.\r
-//\r
-DLLEXPORT FPDF_ACTION STDCALL FPDFLink_GetAction(FPDF_LINK link);\r
-\r
-// Function: FPDFLink_Enumerate\r
-//                     This function would enumerate all the link annotations in a single PDF page.\r
-// Parameters:\r
-//                     page[in]                        -       Handle to the page.\r
-//                     startPos[in,out]        -       The start position to enumerate the link annotations, which should be specified to start from \r
-//                                                             -       0 for the first call, and would receive the next position for enumerating to start from.\r
-//                     linkAnnot[out]          -       Receive the link handle.\r
-// Return value:\r
-//                     TRUE if succceed, else False;\r
-//\r
-DLLEXPORT FPDF_BOOL STDCALL FPDFLink_Enumerate(FPDF_PAGE page, int* startPos, FPDF_LINK* linkAnnot);\r
-\r
-// Function: FPDFLink_GetAnnotRect\r
-//                     Get the annotation rectangle. (Specified by the ¡°Rect¡± entry of annotation dictionary).\r
-// Parameters:\r
-//                     linkAnnot[in]           -       Handle to the link annotation.\r
-//                     rect[out]                       -       The annotation rect.\r
-// Return value:\r
-//                     TRUE if succceed, else False;\r
-//\r
-DLLEXPORT FPDF_BOOL STDCALL FPDFLink_GetAnnotRect(FPDF_LINK linkAnnot, FS_RECTF* rect);\r
-\r
-// Function: FPDFLink_CountQuadPoints\r
-//                     Get the count of quadrilateral points to the link annotation.\r
-// Parameters:\r
-//                     linkAnnot[in]           -       Handle to the link annotation.\r
-// Return value:\r
-//                     The count of quadrilateral points.\r
-//\r
-DLLEXPORT int STDCALL FPDFLink_CountQuadPoints(FPDF_LINK linkAnnot);\r
-\r
-/* _FS_DEF_STRUCTURE_QUADPOINTSF_ */\r
-#ifndef _FS_DEF_STRUCTURE_QUADPOINTSF_\r
-#define _FS_DEF_STRUCTURE_QUADPOINTSF_\r
-typedef struct _FS_QUADPOINTSF\r
-{\r
-       FS_FLOAT  x1;\r
-       FS_FLOAT  y1;\r
-       FS_FLOAT  x2;\r
-       FS_FLOAT  y2;\r
-       FS_FLOAT  x3;\r
-       FS_FLOAT  y3;\r
-       FS_FLOAT  x4;\r
-       FS_FLOAT  y4;\r
-} FS_QUADPOINTSF;\r
-#endif /* _FS_DEF_STRUCTURE_QUADPOINTSF_ */\r
-\r
-// Function: FPDFLink_GetQuadPoints\r
-//                     Get the quadrilateral points for the specified index in the link annotation.\r
-// Parameters:\r
-//                     linkAnnot[in]           -       Handle to the link annotation.\r
-//                     quadIndex[in]           -       The specified quad points index.\r
-//                     quadPoints[out]         -       Receive the quadrilateral points.\r
-// Return value:\r
-//                     True if succeed, else False.\r
-//\r
-DLLEXPORT FPDF_BOOL STDCALL FPDFLink_GetQuadPoints(FPDF_LINK linkAnnot, int quadIndex, FS_QUADPOINTSF* quadPoints);\r
-\r
-// Function: FPDF_GetMetaText\r
-//                     Get a text from meta data of the document. Result is encoded in UTF-16LE.\r
-// Parameters:\r
-//                     doc                     -       Handle to a document\r
-//                     tag                     -       The tag for the meta data. Currently, It can be "Title", "Author", \r
-//                                                     "Subject", "Keywords", "Creator", "Producer", "CreationDate", or "ModDate".\r
-//                                                     For detailed explanation of these tags and their respective values,\r
-//                                                     please refer to PDF Reference 1.6, section 10.2.1, "Document Information Dictionary".\r
-//                     buffer          -       A buffer for output the title. Can be NULL.\r
-//                     buflen          -       The length of the buffer, number of bytes. Can be 0.\r
-// Return value:\r
-//                     Number of bytes the title consumes, including trailing zeros.\r
-// Comments:\r
-//                     No matter on what platform, the title is always output in UTF-16LE encoding, which means the buffer \r
-//                     can be regarded as an array of WORD (on Intel and compatible CPUs), each WORD represent the Unicode of \r
-//                     a character (some special Unicode may take 2 WORDs). The string is followed by two bytes of zero \r
-//                     indicating end of the string.\r
-//\r
-//                     The return value always indicated number of bytes required for the buffer, even when there is\r
-//                     no buffer specified, or the buffer size is less then required. In this case, the buffer will not\r
-//                     be modified.\r
-//\r
-DLLEXPORT unsigned long STDCALL FPDF_GetMetaText(FPDF_DOCUMENT doc, FPDF_BYTESTRING tag,\r
-                                                                                                void* buffer, unsigned long buflen);\r
-\r
-\r
-#ifdef __cplusplus\r
-};\r
-#endif\r
-\r
-#endif // _FPDFDOC_H_\r
+// Copyright 2014 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef _FPDFDOC_H_
+#define _FPDFDOC_H_
+
+#include "fpdfview.h"
+
+// Exported Functions
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// Function: FPDFBookmark_Find
+//                     Find a bookmark in the document, using the bookmark title.
+// Parameters: 
+//                     document        -       Handle to the document. Returned by FPDF_LoadDocument or FPDF_LoadMemDocument.
+//                     title           -       The UTF-16LE encoded Unicode string for the bookmark title to be searched. Can't be NULL.
+// Return value:
+//                     Handle to the found bookmark item. NULL if the title can't be found.
+// Comments:
+//                     It always returns the first found bookmark if more than one bookmarks have the same title.
+//
+DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_Find(FPDF_DOCUMENT document, FPDF_WIDESTRING title);
+
+// Function: FPDFBookmark_GetDest
+//                     Get the destination associated with a bookmark item.
+// Parameters:
+//                     document        -       Handle to the document.
+//                     bookmark        -       Handle to the bookmark.
+// Return value:
+//                     Handle to the destination data. NULL if no destination is associated with this bookmark.
+//
+DLLEXPORT FPDF_DEST STDCALL FPDFBookmark_GetDest(FPDF_DOCUMENT document, FPDF_BOOKMARK bookmark);
+
+// Function: FPDFBookmark_GetAction
+//                     Get the action associated with a bookmark item.
+// Parameters:
+//                     bookmark        -       Handle to the bookmark.
+// Return value:
+//                     Handle to the action data. NULL if no action is associated with this bookmark. In this case, the 
+//                     application should try FPDFBookmark_GetDest.
+//
+DLLEXPORT FPDF_ACTION STDCALL FPDFBookmark_GetAction(FPDF_BOOKMARK bookmark);
+
+#define PDFACTION_UNSUPPORTED          0               // Unsupported action type.
+#define PDFACTION_GOTO                         1               // Go to a destination within current document.
+#define PDFACTION_REMOTEGOTO           2               // Go to a destination within another document.
+#define PDFACTION_URI                          3               // Universal Resource Identifier, including web pages and 
+                                                                                       // other Internet based resources.
+#define PDFACTION_LAUNCH                       4               // Launch an application or open a file.
+
+// Function: FPDFAction_GetType
+//                     Get type of an action.
+// Parameters:
+//                     action          -       Handle to the action.
+// Return value:
+//                     A type number as defined above.
+//
+DLLEXPORT unsigned long STDCALL FPDFAction_GetType(FPDF_ACTION action);
+
+// Function: FPDFAction_GetDest
+//                     Get destination of an action.
+// Parameters:
+//                     document        -       Handle to the document.
+//                     action          -       Handle to the action. It must be a GOTO or REMOTEGOTO action.
+// Return value:
+//                     Handle to the destination data.
+// Comments:
+//                     In case of remote goto action, the application should first use FPDFAction_GetFilePath to
+//                     get file path, then load that particular document, and use its document handle to call this
+//                     function.
+//
+DLLEXPORT FPDF_DEST STDCALL FPDFAction_GetDest(FPDF_DOCUMENT document, FPDF_ACTION action);
+
+// Function: FPDFAction_GetURIPath
+//                     Get URI path of a URI action.
+// Parameters:
+//                     document        -       Handle to the document.
+//                     action          -       Handle to the action. Must be a URI action.
+//                     buffer          -       A buffer for output the path string. Can be NULL.
+//                     buflen          -       The length of the buffer, number of bytes. Can be 0.
+// Return value:
+//                     Number of bytes the URI path consumes, including trailing zeros.
+// Comments:
+//                     The URI path is always encoded in 7-bit ASCII.
+// 
+//                     The return value always indicated number of bytes required for the buffer, even when there is
+//                     no buffer specified, or the buffer size is less then required. In this case, the buffer will not
+//                     be modified.
+//
+DLLEXPORT unsigned long STDCALL FPDFAction_GetURIPath(FPDF_DOCUMENT document, FPDF_ACTION action, 
+                                                                                                         void* buffer, unsigned long buflen);
+
+// Function: FPDFDest_GetPageIndex
+//                     Get page index of a destination.
+// Parameters:
+//                     document        -       Handle to the document.
+//                     dest            -       Handle to the destination.
+// Return value:
+//                     The page index. Starting from 0 for the first page.
+//
+DLLEXPORT unsigned long STDCALL FPDFDest_GetPageIndex(FPDF_DOCUMENT document, FPDF_DEST dest);
+
+// Function: FPDFLink_GetLinkAtPoint
+//                     Find a link at specified point on a document page.
+// Parameters:
+//                     page            -       Handle to the document page.
+//                     x                       -       The x coordinate of the point, specified in page coordinate system.
+//                     y                       -       The y coordinate of the point, specified in page coordinate system.
+// Return value:
+//                     Handle to the link. NULL if no link found at that point.
+// Comments:
+//                     The point coordinates are specified in page coordinate system. You can convert coordinates 
+//                     from screen system to page system using FPDF_DeviceToPage functions.
+//
+DLLEXPORT FPDF_LINK STDCALL FPDFLink_GetLinkAtPoint(FPDF_PAGE page, double x, double y);
+
+// Function: FPDFLink_GetDest
+//                     Get destination info of a link.
+// Parameters:
+//                     document        -       Handle to the document.
+//                     link            -       Handle to the link. Returned by FPDFLink_GetLinkAtPoint.
+// Return value:
+//                     Handle to the destination. NULL if there is no destination associated with the link, in this case
+//                     the application should try FPDFLink_GetAction.
+//
+DLLEXPORT FPDF_DEST STDCALL FPDFLink_GetDest(FPDF_DOCUMENT document, FPDF_LINK link);
+
+// Function: FPDFLink_GetAction
+//                     Get action info of a link.
+// Parameters:
+//                     link            -       Handle to the link.
+// Return value:
+//                     Handle to the action. NULL if there is no action associated with the link.
+//
+DLLEXPORT FPDF_ACTION STDCALL FPDFLink_GetAction(FPDF_LINK link);
+
+// Function: FPDFLink_Enumerate
+//                     This function would enumerate all the link annotations in a single PDF page.
+// Parameters:
+//                     page[in]                        -       Handle to the page.
+//                     startPos[in,out]        -       The start position to enumerate the link annotations, which should be specified to start from 
+//                                                             -       0 for the first call, and would receive the next position for enumerating to start from.
+//                     linkAnnot[out]          -       Receive the link handle.
+// Return value:
+//                     TRUE if succceed, else False;
+//
+DLLEXPORT FPDF_BOOL STDCALL FPDFLink_Enumerate(FPDF_PAGE page, int* startPos, FPDF_LINK* linkAnnot);
+
+// Function: FPDFLink_GetAnnotRect
+//                     Get the annotation rectangle. (Specified by the ¡°Rect¡± entry of annotation dictionary).
+// Parameters:
+//                     linkAnnot[in]           -       Handle to the link annotation.
+//                     rect[out]                       -       The annotation rect.
+// Return value:
+//                     TRUE if succceed, else False;
+//
+DLLEXPORT FPDF_BOOL STDCALL FPDFLink_GetAnnotRect(FPDF_LINK linkAnnot, FS_RECTF* rect);
+
+// Function: FPDFLink_CountQuadPoints
+//                     Get the count of quadrilateral points to the link annotation.
+// Parameters:
+//                     linkAnnot[in]           -       Handle to the link annotation.
+// Return value:
+//                     The count of quadrilateral points.
+//
+DLLEXPORT int STDCALL FPDFLink_CountQuadPoints(FPDF_LINK linkAnnot);
+
+/* _FS_DEF_STRUCTURE_QUADPOINTSF_ */
+#ifndef _FS_DEF_STRUCTURE_QUADPOINTSF_
+#define _FS_DEF_STRUCTURE_QUADPOINTSF_
+typedef struct _FS_QUADPOINTSF
+{
+       FS_FLOAT  x1;
+       FS_FLOAT  y1;
+       FS_FLOAT  x2;
+       FS_FLOAT  y2;
+       FS_FLOAT  x3;
+       FS_FLOAT  y3;
+       FS_FLOAT  x4;
+       FS_FLOAT  y4;
+} FS_QUADPOINTSF;
+#endif /* _FS_DEF_STRUCTURE_QUADPOINTSF_ */
+
+// Function: FPDFLink_GetQuadPoints
+//                     Get the quadrilateral points for the specified index in the link annotation.
+// Parameters:
+//                     linkAnnot[in]           -       Handle to the link annotation.
+//                     quadIndex[in]           -       The specified quad points index.
+//                     quadPoints[out]         -       Receive the quadrilateral points.
+// Return value:
+//                     True if succeed, else False.
+//
+DLLEXPORT FPDF_BOOL STDCALL FPDFLink_GetQuadPoints(FPDF_LINK linkAnnot, int quadIndex, FS_QUADPOINTSF* quadPoints);
+
+// Function: FPDF_GetMetaText
+//                     Get a text from meta data of the document. Result is encoded in UTF-16LE.
+// Parameters:
+//                     doc                     -       Handle to a document
+//                     tag                     -       The tag for the meta data. Currently, It can be "Title", "Author", 
+//                                                     "Subject", "Keywords", "Creator", "Producer", "CreationDate", or "ModDate".
+//                                                     For detailed explanation of these tags and their respective values,
+//                                                     please refer to PDF Reference 1.6, section 10.2.1, "Document Information Dictionary".
+//                     buffer          -       A buffer for output the title. Can be NULL.
+//                     buflen          -       The length of the buffer, number of bytes. Can be 0.
+// Return value:
+//                     Number of bytes the title consumes, including trailing zeros.
+// Comments:
+//                     No matter on what platform, the title is always output in UTF-16LE encoding, which means the buffer 
+//                     can be regarded as an array of WORD (on Intel and compatible CPUs), each WORD represent the Unicode of 
+//                     a character (some special Unicode may take 2 WORDs). The string is followed by two bytes of zero 
+//                     indicating end of the string.
+//
+//                     The return value always indicated number of bytes required for the buffer, even when there is
+//                     no buffer specified, or the buffer size is less then required. In this case, the buffer will not
+//                     be modified.
+//
+DLLEXPORT unsigned long STDCALL FPDF_GetMetaText(FPDF_DOCUMENT doc, FPDF_BYTESTRING tag,
+                                                                                                void* buffer, unsigned long buflen);
+
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif // _FPDFDOC_H_