You can't pass in an ATL smart type for the data to overwrite, but must declare it as a simple pointer to IUnknownTo make the sample code work, change the var type of pToOverwriteMap from IUnknownPtr to IUnknown***** Please document this usage in the documentation ****A good place to document the proper usage of the IUnknown* parameter (as opposed to the IUnknownPtr type) would be either:(a) Since this likely affects other utility methods, esriSystem library overview; or(b) The discussion on ATL smart types, found here:<a href="http://edndoc.esri.com/arcobjects/9.1/default.asp?URL=/arcobjects/9.1/ArcGISDevHelp/DevelopmentEnvs/COM/VCpp/SmartTypes.htm" target="_blank">http://edndoc.esri.com/arcobjects/9.1/default.asp?URL=/arcobjects/9.1/ArcGISDevHelp/DevelopmentEnvs/COM/VCpp/SmartTypes.htm</a>