#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.
Handle to the annotation object.
Pointer to a variable to be updated with the handle to a metafile.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
The encrypt object has two states:
Encryptor
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:
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
Win32, x64.
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 Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document