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.

This function is available in the Document and Medical Imaging 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:

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 2000 / XP/Vista.

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;
}