On you monikers question check out section 2.4.1 of the Objects book and the
Moniker sample app for the differences between USE and REPLACE_VIS_MONIKER.
Basically, according to notes in the sample app:
>>>>MSG_GEN_USE_VIS_MONIKER allows us to set the moniker of a generic object
to be a visual moniker chunk that is already in the same block as the object.
The moniker it replacess left in the block; it is not freed.<<<<<
I found some strange results when I inadvertently used USE when I should have
used REPLACE and vice versa. Generally USE is best when you have the
monikers already defined in the static object code with the rest of your UI
stuff. Everything just stays in its appropriate resource block.
Hope this helps...
John ;-)