Hello "Max Adams", you wrote...

> [...]
> This is the definition of the type I want to pass:
> CArray aCArray;
> The function prototype I am trying to pass this CArray to is:
> BOOL FunctionName(CString strMsg, CArray > COMPONENT_DETAILS&> aDest, CListBox cDest);
> The two types are identical. I think i might need a copy
> constructor - is this the case, if so can anyone provide an example
> copy constructor using custom types please.

You don't need a copy constructor, because it is possible to pass the
Array to the function as a const reference parameter:

BOOL FunctionName(CString strMsg, const CArray COMPONENT_DETAILS&> &aDest, CListBox cDest);

Just a short remark: Also with many other parameters it is often
advisable, to pass them as const reference parameters, because a copy
constructor call is often redundant, furthermore it costs time.

....und Informatiker brauchen doch eine Freundin:
Irgendjemand muss sie ja waschen und anziehen!