Dein Code aus #12 war schon fast richtig. Die Zuweisung in der vorletzten Zeile wird nur nicht an den Aufrufer durchgereicht, daher sollte das so aussehen:
Code:
DECLDIR void /*!*/ EXTP_GetPlugInName( LPCWSTR* /*!*/ result )
{
LPWSTR buffer = NULL;
int size = MultiByteToWideChar( CP_ACP, 0, "MyPluginName", -1, NULL, 0 );
buffer = (WCHAR*) malloc( sizeof( WCHAR ) * size );
MultiByteToWideChar( CP_ACP, 0, "MyPluginName", -1, buffer, size );
*result /*!*/ = SysAllocStringLen( buffer, size );
free(buffer); //!
}
Der Rückgabetyp der Funktion sollte void sein. Außerdem solltest du buffer wieder freigeben.