L_AnnGetSecondaryMetafile

#include "l_bitmap.h"

L_LTANN_API L_INT L_AnnGetSecondaryMetafile(hObject, phMetafile)

HANNOBJECT hObject;

/* handle to the annotation object */

HMETAFILE *phMetafile;

/* pointer to a variable to be updated with the handle to a metafile */

Retrieves the metafile handle associated with an encryptor object when it is in the decryptor state.

Parameter

Description

hObject

Handle to the annotation object.

phMetafile

Pointer to a variable to be updated with the handle to a metafile.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

The encrypt object has two states:

Each state is displayed with its own metafile.

Use this function to retrieve the current metafile for an encrypt object in a decryptor state. The default image is shown in the figure below:

image\decryptresized20.gif

If this function is successful, the address pointed to by phMetafile will be updated with the metafile handle.

Use the L_AnnGetMetafile function to retrieve the current metafile for an encrypt object in an encryptor state.

Required DLLs and Libraries

LTANN

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

Platforms

Win32, x64.

See Also

Functions:

L_AnnGetMetafile, L_AnnSetMetafile, L_AnnGetPredefinedMetafile, L_ScrambleBitmap, L_AnnEncryptApply, L_AnnSetEncryptOptions, L_AnnGetEncryptOptions

Topics:

Annotation Functions: Object Properties

 

Annotation Objects - Default Values

 

Annotation Objects - Automated Features

 

Implementing an Automated Annotation Program

 

Implementing a Non-automated Annotation Program

 

Obtaining Annotation Object Information

 

Using Annotation Bitmap Objects

 

Annotation Functions (Document/Medical only): Getting and Setting the Object Metafile Property

Example

This example swaps the metafiles for the 'encrypt' and 'decrypt' state of an encryptor.

 L_INT AnnGetSecondaryMetafileExample(HANNOBJECT hObject)
{
   L_INT nRet;
   HMETAFILE         hMetafile1=0;
   HMETAFILE         hMetafile2=0;
   L_BOOL            bEncryptorOriginal;
   ANNENCRYPTOPTIONS EncryptOptions;
   L_UINT            uObjectType;

   nRet = L_AnnGetType(hObject, &uObjectType);
   if(nRet != SUCCESS)
      return nRet;
   if (uObjectType != ANNOBJECT_ENCRYPT)
   {
      MessageBox(NULL, TEXT("This object is not an encryptor."), TEXT("Error"), MB_OK);
      return 0;
   }

   nRet = L_AnnGetMetafile(hObject, &hMetafile1);
   if(nRet != SUCCESS)
      return nRet;
   nRet = L_AnnGetSecondaryMetafile(hObject, &hMetafile2);
   if(nRet != SUCCESS)
      return nRet;

   memset(&EncryptOptions, 0, sizeof(ANNENCRYPTOPTIONS));
   EncryptOptions.uStructSize = sizeof(ANNENCRYPTOPTIONS);
   EncryptOptions.uFlags = ANNENCRYPT_ALL;
   nRet = L_AnnGetEncryptOptions(hObject,  &EncryptOptions);
   if(nRet != SUCCESS)
      return nRet;

   bEncryptorOriginal = EncryptOptions.bEncryptor;

   // Set state to encryptor, and set encryptor metafile
   EncryptOptions.uFlags      = ANNENCRYPT_TYPE;
   EncryptOptions.bEncryptor  = TRUE;
   nRet = L_AnnSetEncryptOptions(hObject, &EncryptOptions, 0);
   if(nRet != SUCCESS)
      return nRet;
   nRet = L_AnnSetMetafile(hObject, hMetafile2, ANNMETAFILE_USER, 0);
   if(nRet != SUCCESS)
      return nRet;

   // Set state to decryptor, and set decryptor metafile
   EncryptOptions.bEncryptor = FALSE;
   nRet = L_AnnSetEncryptOptions(hObject, &EncryptOptions, 0);
   if(nRet != SUCCESS)
      return nRet;
   nRet = L_AnnSetMetafile(hObject, hMetafile1, ANNMETAFILE_USER, 0);
   if(nRet != SUCCESS)
      return nRet;

   // Set encryptor to oringal state
   EncryptOptions.bEncryptor = bEncryptorOriginal;
   nRet = L_AnnSetEncryptOptions(hObject, &EncryptOptions, 0);
   if(nRet != SUCCESS)
      return nRet;
   return SUCCESS;
}