#include "lvkrn.h"
L_LVKRN_API L_INT L_VecCopy(pDst, pSrc, dwFlags)
Copies one vector handle to another.
Pointer to the target vector handle.
Pointer to the source vector handle.
Flag that indicate the characteristics of the copy process. Possible values are:
Value | Meaning |
---|---|
0 | Copy the entire vector handle from the source vector to the destination vector. |
VECTOR_FLAGS_SELECTED_ONLY | Copy only selected objects from the source vector to the destination vector. |
VECTOR_FLAGS_REPLACE | Empty the destination vector handle before copying. |
VECTOR_FLAGS_RENAME_DUPLICATES | Renames duplicate layer names if found. This flag is only valid when VECTOR_FLAGS_REPLACE is not specified. The toolkit will add a suffix (0, 1, 2, etc) to the layer name if duplicated. Checking will be aborted when the suffix value reaches 999 and no unique name can be created. |
VECTOR_FLAGS_COPY_INTO_ACTIVE_LAYER | Copies objects and layers into the active layer of the destination vector. |
VECTOR_FLAGS_COPY_LAYERS_ONLY | Copies all layers and objects from the source vector to the destination vector. Transformation, camera, viewport and all other properties of the destination vector will not be effected. |
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
Copies an entire drawing of a source vector structure and places it into a destination structure.
This also copies all fields in the VECTORHANDLE structure.
This function will not copy the window attachment, if pSrc is attached to a window, pDst will not be attached to the same window.
Required DLLs and Libraries
This example will try to load a file into a given vector handle, it will try to not alter the provided handle if the file cannot be loaded.
L_INT VecCopyExample(
L_TCHAR* pszFile,
pVECTORHANDLE pVector)
{
L_INT nRet;
VECTORHANDLE TempVector; /* Temporary vector handle. */
/* Load the file into the temporary vector. */
nRet = L_VecLoadFile( pszFile, &TempVector, NULL, NULL );
if( nRet != SUCCESS )
return nRet;
/* Copy the new vector into the provided one. */
nRet = L_VecCopy( pVector, &TempVector, VECTOR_FLAGS_REPLACE );
if( nRet != SUCCESS )
{
L_VecFree( &TempVector );
return nRet;
}
/* Free the temporary vector before returning. */
nRet = L_VecFree( &TempVector );
return nRet;
}