Normally when I need a second point to an interface I just create a second variable and assign it to the old, like so:
LPINTERFACETHING NewThing = NULL;
NewThing = OldThing;
But I just came across a situation where I must pass an interface pointer to a function by reference and assign it to another interface pointer created within the function. I just want to make sure it is ok to use mempy() like this:
HRESULT SomeFunction(IDirectWhatever **New)
{
IDirectWhatever * ld = NULL
//create "old"
//...
memcpy(New,&Old,sizeof(IDirectWhatever));
return(0);
}