# VAPIMWP_INIT_OPEN_DOCUMENT

Opens a document for one of the following operations:

- viewing

- determining a document format without viewing

- printing/converting/saving without viewing

This is a parameter of the `VAPIM_INIT` message. See Open and View a Document.

## Syntax

    #include <kvvapi.h>
    SendMessage(hWndVAPI, VAPIM_INIT, VAPIMWP_INIT_OPEN_DOCUMENT,
               (LPARAM) (TPVAPIOpenDocumentInfo*) pOpenDocumentInfo );

## Arguments

Argument | Description
--- | ---
`hWndVAPI` | The handle of the VAPI window.
`pOpenDocumentInfo` | A pointer to a TPVAPIOpenDocumentInfo structure that contains information about the document to be opened.

## Returns

- `SendMessage()` returns `VAPI_RETURN_SUCCESS` if the document opening is successfully initiated.
- If there is no viewer for the specified document, `SendMessage()` returns `VAPI_RETURN_NO_VIEWER`.
- If the format of the document could not be determined, `SendMessage()` returns `VAPI_RETURN_UNKNOWN_FORMAT`.
- If the document is password protected, `SendMessage()` returns `VAPI_RETURN_PASSWORD_PROTECTED`.
- If the drawing routines have not been initialized, `SendMessage()` returns `VAPI_RETURN_NOT_INITIALIZED`.
- If the requested page does not exist, or is being displayed before all previous pages have been displayed, `SendMessage()` returns `VAPI_RETURN_NO_PAGE`.
- If the document does not support this feature (for example, ZIP files, video, audio), `SendMessage()` returns `VAPI_RETURN_NOT_AVAILABLE`.
- If the KeyView license is invalid, `SendMessage()` returns `VAPI_RETURN_INVALID_LICENSE_KEY`.
- If the KeyView license is expired, `SendMessage()` returns `VAPI_RETURN_EXPIRED_LICENSE_KEY`.
- If the input file or stream is invalid or corrupt, `SendMessage()` returns `VAPI_RETURN_BAD_INPUT`.
- Any other error condition causes `VAPI_RETURN_ERROR` to be returned.

## Discussion

- This message initiates the document opening and returns before the document opening is complete unless you set the `bWait` parameter in the `TPVAPIOpenDocumentInfo` structure to `TRUE`.

- This message produces several notification messages:

  - One or more `VAPINMWP_INIT_OPENDOCDONE` notification messages are received to report the status of the document opening.

  - In addition, if the document to be opened contains pages, a `VAPINMWP_INIT_PAGENUMBER` notification message is received to report the current page number.

  - Finally, if the document to be opened contains objects (for example, a spreadsheet document containing pages), a `VAPINMWP_MULTIOBJ_OBJNAME` notification message is received to report the current object name (for example, the name of the current spreadsheet page).

- To open a document to view as text, set the `bViewAsText` parameter in the `TPVAPIOpenDocumentInfo` structure to `TRUE`.

- To open and process a document (print, convert, and so on) without viewing, set the `nFlags` parameter in the `TPVAPIOpenDocumentInfo` structure to `VAPIDF_FLAGS_OPEN_WITHOUT_VIEW`. This flag tells VAPI to create a hidden Viewer window. You must also set the `bWait` parameter in the `TPVAPIOpenDocumentInfo` structure to `TRUE`, except when you use APIs to draw documents without viewing. See Draw a Page for more information.

  For example, to print a document without viewing, open the document with the `bWait` parameter set to `TRUE` and the `nFlags` parameter set to `VAPIDF_FLAGS_OPEN_WITHOUT_VIEW`, and then send the `VAPIMWP_PRINT_PRINT` message.

- To open a document and return format information without viewing, set the `nFlags` parameter in the `TPVAPIOpenDocumentInfo` structure to `VAPIDF_FLAGS_OPEN_VAPI_ONLY`. This flag does not create a Viewer window.

- To make sure that a document is fully processed before an operation (such as printing, converting, or searching) is performed, set the `bWait` parameter in the `TPVAPIOpenDocumentInfo` structure to `TRUE`. This is useful when you want to use an operation immediately after opening the document.

_FT_HTML5_bannerTitle.htm