char* CDSMPlugin::DescribePlugin(void) { // TODO: Log events char* szDescription = NULL; if (m_PDescription) { szDescription = (*m_PDescription)(); if (szDescription != NULL) { MyStrToken(m_szPluginName, szDescription, 1, ','); MyStrToken(m_szPluginAuthor, szDescription, 2, ','); MyStrToken(m_szPluginDate, szDescription, 3, ','); MyStrToken(m_szPluginVersion, szDescription, 4, ','); MyStrToken(m_szPluginFileName, szDescription, 5, ','); } return szDescription; } else return "No Plugin loaded"; }
// // Set the plugin params (Key or password ) // If several params are needed, they can be transmitted separated with ',' (comma) // then translated if necessary. They also can be taken from the internal Plugin config // // WARNING: The plugin is responsible for implementing necessary GUI or File/Registry reading // to acquire additionnal parameters and to ensure their persistence if necessary. // Same thing for events/errors logging. // // This function can be called 2 times, both from vncviewer and WinVNC: // // 1.If the user clicks on the Plugin's "config" button in vncviewer and WinVNC dialog boxes // In this case this function is called with hVNC != 0 (CASE 1) // // -> szParams is a string formatted as follow: "Part1,Part2" // Part1 = "NoPassword" // Part2 = type of application that has loaded the plugin // "viewer" : for vncviewer // "server-svc" : for WinVNC run as a service // "server-app" : for WINVNC run as an application // // -> The Plugin Config dialog box is displayed if any. // // 2.When then plugin is Inited from VNC viewer or Server, right after Startup() call (CASE 2); // In this case, this function is called with hVNC = 0 and // szParams is a string formatted as follows: "part1,Part2" // Part1 = The VNC password, if required by the GetParams() function return value // Part2 = type of application that has loaded the plugin // "viewer" : for vncviewer // "server-svc" : for WinVNC run as a service // "server-app" : for WINVNC run as an application // (this info can be used for application/environnement dependent // operations (config saving...)) // TESTPLUGIN_API int SetParams(HWND hVNC, char* szParams) { // CASE 1 // Get the environnement (szLoaderType) value that is always sent from // VNC viewer or server MyStrToken(szLoaderType, szParams, 2, ','); // If hVNC != 0, display for instance the Plugin Config Dialog box if (hVNC) { // Display the Plugin Config dialog box DoDialog(); } // CASE 2: // Use szParams to setup the Plugin. // In this example Plugin, the externalkey is not used but we store it anyway.for demo. // (it corresponds to the VNC password as we require it in the GetParams() function below) MyStrToken(szExternalKey, szParams, 1, ','); return 1; }
char* CDSMPlugin::DescribePlugin(void) { // TODO: Log events char* szDescription = NULL; if (m_PDescription) { szDescription = (*m_PDescription)(); if (szDescription != NULL) { //adzm 2010-05-10 - this was inconsistent with the way the plugins are written MyStrToken(m_szPluginName, szDescription, 1, ','); MyStrToken(m_szPluginVersion, szDescription, 2, ','); MyStrToken(m_szPluginDate, szDescription, 3, ','); MyStrToken(m_szPluginAuthor, szDescription, 4, ','); MyStrToken(m_szPluginFileName, szDescription, 5, ','); } return szDescription; } else return "No Plugin loaded"; }