Retrieves the metafile handle associated with an encryptor object when it is in the decryptor state.
#include "l_bitmap.h"
L_LTANN_API L_INT L_AnnGetSecondaryMetafile(hObject, phMetafile)
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.
Win32, x64.
This example swaps the metafiles for the 'encrypt' and 'decrypt' state of an encryptor.
L_INT AnnGetSecondaryMetafileExample(HANNOBJECT hObject)
{
L_INT nRet;
L_HMETAFILE hMetafile1 = 0;
L_HMETAFILE hMetafile2 = 0;
L_BOOL bEncryptorOriginal;
ANNENCRYPTOPTIONS EncryptOptions;
L_UINT uObjectType;
L_TCHAR szMsg[200];
nRet = L_AnnGetType(hObject, &uObjectType);
if (nRet != SUCCESS)
return nRet;
if (uObjectType != ANNOBJECT_ENCRYPT)
{
_stprintf_s(szMsg, "Error: This object is not an encryptor.");
_tprintf(_T("%s"), szMsg);
return FAILURE;
}
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 = L_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 = L_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 original state
EncryptOptions.bEncryptor = bEncryptorOriginal;
return L_AnnSetEncryptOptions(hObject, &EncryptOptions, 0);
}
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