Using Functions in the FesfDs Service

The FesfDs service is an out-of-process COM server.  It exports the functions described in this section for use by Client Solutions in FESF Online State (when FESF is installed and running on the system) or in FESF Offline State (as long as the FesfDS Service is accessible via COM).

Type Library:  \UM_FESF\UMLIB\FESFDS.TLB

CLSID:         FesfDs   {8a8b65c6-8862-4856-95f9-9f88b2ec785d}

IID:   IFesfDs  {8ef95237-cec8-4c30-99c0-db43e61bdea8}

 

Note: Please use the definitions provided in the type library as the GUIDs are subject to change.

Functions exported by the FesfDs Service can be invoked using standard COM mechanisms.  One example of using these mechanisms is illustrated in the following example.

In the Header file:

  #import "..\..\UM_FESF\UMLib\FESFDS.tlb" no_namespace raw_interfaces_only

 

In the executable function:

// Initialize COM

HRESULT hr = ::CoInitialize(0);

 

if (FAILED(hr))

{

    return Error(hr);

}

 

// get data storage object

CComPtr<IFesfDsspDS;

HRESULT hr = spDS.CoCreateInstance(__uuidof(FesfDs));

 

if (FAILED(hr))

{

    return Error(hr);

}

 

// check if file is encrypted

 

VARIANT_BOOL encrypted;

hr = spDS->IsFileEncrypted(const_cast<GUID *>(&GUID_NULL), 

                           CComBSTR(file),

                           &encrypted);

 

if (FAILED(hr))

{

    wprintf(L"Failed to determine status\n");

    return;

 

if (encrypted == VARIANT_TRUE) {

 

    wprintf(L"File is encrypted\n");

else {

 

    wprintf(L"File is not encrypted\n");

}