L_AnnGetSecondaryMetafile

#include "l_bitmap.h"

L_LTANN_API L_INT L_AnnGetSecondaryMetafile(hObject, phMetafile)

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

Parameters

HANNOBJECT hObject

Handle to the annotation object.

HMETAFILE *phMetafile

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

Returns

Value Meaning
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

Platforms

Win32, x64.

See Also

Functions

Topics

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

Help Version 20.0.2020.4.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Raster Imaging C API Help