L_VecCopy

#include "lvkrn.h"

L_LVKRN_API L_INT L_VecCopy(pDst, pSrc, dwFlags)

pVECTORHANDLE pDst;

/* pointer to a vector handle */

const pVECTORHANDLE pSrc;

/* pointer to a vector object */

L_UINT32 dwFlags;

/* copy flags */

Copies one vector handle to another.

Parameter

Description

pDst

Pointer to the target vector handle.

pSrc

Pointer to the source vector handle.

dwFlags

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.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

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

LVKRN

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

See Also

Functions:

L_VecInit, L_VecFree, L_VecEmpty

Example

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