by Ross Comer
Development Lead, Microsoft Office Compatible
June 1996
This article provides a detailed description of the Post to Exchange feature of Office Compatible and the steps necessary to implement this feature into your custom application. It also provides sample code for both a C/C++ interface and an OLE Automation interface accessible from Visual Basic or VBA.
Post To Exchange enables the user of a client application to post any document (not necessarily saved in an OLE storage) to Exchange so that co-workers can view and work with it. This call works the same as the Post to Exchange option in the Office applications. This API will work with any mail system which supports MAPI calls for posting documents.
When using the Post functionality with a system that uses Exchange, the following dialog will come up in the application and allow the user to select a folder in which to post the document.
The following APIs should be used to post document to Exchange.
FCanPostDoc returns False if Posting is not supported on this system.
// Is Document Posting enabled?
BOOL FCanPostDoc();
The PostDoc call posts the document to Exchange.
HRESULT PostDoc(
LPCWSTR wzFileName, // full path of file to post
// This parameter is used to post the document.
LPWSTR wzSubject, // Message subject
// This parameter launches the application.
HWND hwnd); // hWnd of the application window
// Get the OfficeCompatible interface
IOfficeCompatible *pOC = CreateOfficeCompatible(L”SampleApp”, L”SampleAplication”)
if (pOC == NULL)
return;
if (pOC->FCanPostDoc() == TRUE)
pOC->PostDoc(wzFileName, wzFileName, hwndMain);
Document Posting is also available through the Office Compatible Automation interfaces.
From the OfficeCompatible Object:
Properties
CanPostDocument - Boolean, read only
Methods
PostDocument([in,opt] fileName, [in,opt] Subject)
Set OC = CreateObject("OfficeCompatible.Application")
If OC Is Nothing Then Exit Sub
On Error Resume Next
OC.Init "OCBSamp", "Office Compatible Basic Sample App"
If (Err.Number <> 0) Then
Set OC = Nothing
On Error GoTo 0
Exit Sub
End If
If (oc.CanPostDocument = TRUE) Then
OC.PostDocument(FileName)
End If