L_AnnGetSecondaryMetafile

#include "l_bitmap.h"

L_INT EXT_FUNCTION L_AnnGetSecondaryMetafile(hObject, phMetafile)

HANNOBJECT hObject;

/* handle to the annotation object */

HMETAFILE L_FAR * 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. This function is available in the Document/Medical Toolkits.

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:

image\sqrblit.gif Encryptor

image\sqrblit.gif Decryptor

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

Windows 95 / 98 / Me, Windows 2000 / XP.

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_VOID SampleAnnGetSecondaryMetafile(HANNOBJECT hObject)
{
   HMETAFILE hMetafile1=0;
   HMETAFILE hMetafile2=0;
   L_BOOL bEncryptorOriginal;
   ANNENCRYPTOPTIONS EncryptOptions;

   L_UINT uObjectType;

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

   L_AnnGetMetafile(hObject, &hMetafile1);
   L_AnnGetSecondaryMetafile(hObject, &hMetafile2);

   memset(&EncryptOptions, 0, sizeof(ANNENCRYPTOPTIONS));
   EncryptOptions.uStructSize = sizeof(ANNENCRYPTOPTIONS);
   EncryptOptions.uFlags = ANNENCRYPT_ALL;
   L_AnnGetEncryptOptions(hObject,  &EncryptOptions);

   bEncryptorOriginal = EncryptOptions.bEncryptor;

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

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

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