#include <stdio.h>
|
#include <windows.h>
|
#include <public/fpdfview.h>
|
|
FPDF_PAGE page;
|
|
LRESULT CALLBACK WndProc(HWND window, UINT msg, WPARAM w, LPARAM l)
|
{
|
switch (msg)
|
{
|
case WM_PAINT:
|
{
|
// draw page directly on window (device context)
|
HDC dc = GetDC(window);
|
FPDF_RenderPage(dc,page,0,0,2479,3507,0,0);
|
ReleaseDC(window, dc);
|
return 0;
|
}
|
case WM_DESTROY:
|
PostQuitMessage(EXIT_SUCCESS);
|
return 0;
|
default:
|
return DefWindowProc(window, msg, w, l);
|
}
|
}
|
|
int main(int argc, char* argv[])
|
{
|
WNDCLASSEX wndClass;
|
wndClass.cbSize = sizeof(WNDCLASSEX);
|
wndClass.style = 0;
|
wndClass.lpfnWndProc = WndProc;
|
wndClass.cbClsExtra = 0;
|
wndClass.cbWndExtra = 0;
|
wndClass.hInstance = GetModuleHandle(0);
|
wndClass.hIcon = LoadIcon(0,IDI_APPLICATION);
|
wndClass.hCursor = LoadCursor(0,IDC_ARROW);
|
wndClass.hbrBackground = (HBRUSH)GetStockObject(COLOR_WINDOW+1);
|
wndClass.lpszMenuName = NULL;
|
wndClass.lpszClassName = "class name";
|
wndClass.hIconSm = LoadIcon(0,IDI_APPLICATION);
|
|
if (!RegisterClassEx(&wndClass))
|
{
|
printf("RegisterClassEx failed");
|
return EXIT_FAILURE;
|
}
|
|
HWND window = CreateWindowEx( 0
|
, wndClass.lpszClassName
|
, "window title"
|
, WS_OVERLAPPED | WS_SIZEBOX
|
, CW_USEDEFAULT
|
, CW_USEDEFAULT
|
, CW_USEDEFAULT
|
, CW_USEDEFAULT
|
, 0
|
, 0
|
, GetModuleHandle(0)
|
, NULL);
|
if (!window)
|
{
|
printf("CreateWindowEx failed");
|
return EXIT_FAILURE;
|
}
|
|
ShowWindow(window, SW_SHOWNORMAL);
|
|
// init
|
FPDF_InitLibraryWithConfig(NULL);
|
|
// load doc
|
FPDF_DOCUMENT doc = FPDF_LoadDocument("original.pdf", 0);
|
if (doc == 0)
|
{
|
printf("failed to load 'original.pdf'");
|
return EXIT_FAILURE;
|
}
|
|
// load page
|
page = FPDF_LoadPage(doc, 0);
|
if (page == 0)
|
{
|
printf("failed to load page 1");
|
return EXIT_FAILURE;
|
}
|
|
// draw page
|
MSG msg;
|
for (BOOL s = GetMessage(&msg, 0, 0, 0); s && !(s == -1); s = GetMessage(&msg, 0, 0, 0))
|
{
|
DispatchMessage(&msg);
|
}
|
|
// de-init
|
FPDF_DestroyLibrary();
|
|
return EXIT_SUCCESS;
|
}
|