HRESULT GetVersion(
ULONG FAR * lpulVersion, ULONG ulFlags );
Parameters
lpulVersion
[out] Pointer to the location where the version of Microsoft Exchange is returned. The format of the returned version is determined by the value of the ulFlags parameter.
ulFlags
[in] Bitmask of flags used to specify the type and format of the version information that is returned. These flags can have the following values:
EECBGV_GETBUILDVERSION
Requests that the major version is returned in the HIWORD and the minor version in the LOWORD. Extension objects should verify that the major version matches the EECBGV_BUILDVERSION_MAJOR with which they were compiled, and that the minor version is at least the minor version with which the extension object was tested.
EECBGV_GETACTUALVERSION
Requests that the version returned corresponds to the actual version of the calling client.
EECBGV_GETVIRTUALVERSION
Requests that the version returned is the version which the client wants the extension to base its decisions on. For example, if an application named Zippypost 5.0 implements Microsoft Exchange extensibility to exactly match that implemented in Microsoft Exchange, the actual version would be Zippypost 5.0 but the virtual version would be Microsoft Exchange.
Return Values
S_OK
No error occurred.
Remarks
Extension objects should test against the virtual version and should reserve actual version checking for determination of additional features specific to a particular kind of client or version.
The actual and virtual versions are made up of four bytes, which represent in order from most significant to least the product, the platform, the major version, and the minor version. For example, Microsoft Exchange 4.0 for Microsoft® Windows NT® operating system is 0x01030400. Microsoft Exchange for the Macintosh would be 0x0104052A. Zippypost 3.2 for Microsoft® Windows® operating system (version 3.1) might be 0x13010320.