Index: fpdfsdk/src/fpdfview.cpp |
diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp |
index a419749e8e6c217d17cc214493f4ae2079a6c4bf..8895dce0764a54d5db52b379728aa0f2f9422f23 100644 |
--- a/fpdfsdk/src/fpdfview.cpp |
+++ b/fpdfsdk/src/fpdfview.cpp |
@@ -155,12 +155,20 @@ DLLEXPORT void STDCALL FPDF_SetSandBoxPolicy(FPDF_DWORD policy, |
return FSDK_SetSandBoxPolicy(policy, enable); |
} |
+ |
DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadDocument(FPDF_STRING file_path, |
FPDF_BYTESTRING password) { |
+ // NOTE: the creation of the file needs to be by the embedder on the |
+ // other side of this API. |
+ IFX_FileRead* pFileAccess = FX_CreateFileRead((const FX_CHAR*)file_path); |
+ if (!pFileAccess) { |
+ return nullptr; |
+ } |
+ |
CPDF_Parser* pParser = new CPDF_Parser; |
pParser->SetPassword(password); |
- FX_DWORD err_code = pParser->StartParse((const FX_CHAR*)file_path); |
+ FX_DWORD err_code = pParser->StartParse(pFileAccess); |
if (err_code) { |
delete pParser; |
ProcessParseError(err_code); |