Files
mirror-processhacker/3.x/trunk/plugins/GraphicsInfo/main.c
T
wj32 1bb80a3b18 second attempt at 3.x
git-svn-id: svn://svn.code.sf.net/p/processhacker/code@4669 21ef857c-d57f-4fe0-8362-d861dc6d29cd
2011-09-14 04:16:57 +00:00

124 lines
3.2 KiB
C

#include "gfxinfo.h"
LOGICAL DllMain(
__in HINSTANCE Instance,
__in ULONG Reason,
__reserved PVOID Reserved
)
{
static PH_SETTING_CREATE settings[] =
{
{ IntegerSettingType, SETTING_NAME_GFX_ALWAYS_ON_TOP, L"0" },
{ IntegerPairSettingType, SETTING_NAME_GFX_WINDOW_POSITION, L"400,400" },
{ IntegerPairSettingType, SETTING_NAME_GFX_WINDOW_SIZE, L"500,400" },
};
switch (Reason)
{
case DLL_PROCESS_ATTACH:
{
PPH_PLUGIN_INFORMATION info;
PluginInstance = PhRegisterPlugin(L"ProcessHacker.GraphicsInfo", Instance, &info);
if (!PluginInstance)
return FALSE;
info->DisplayName = L"GPU Information";
info->Author = L"dmex";
info->Description = L"Extended functionality for nVidia and ATI graphics cards.";
info->HasOptions = TRUE;
PhRegisterCallback(
PhGetPluginCallback(PluginInstance, PluginCallbackLoad),
LoadCallback,
NULL,
&PluginLoadCallbackRegistration
);
PhRegisterCallback(
PhGetPluginCallback(PluginInstance, PluginCallbackUnload),
UnloadCallback,
NULL,
&PluginUnloadCallbackRegistration
);
PhRegisterCallback(
PhGetGeneralCallback(GeneralCallbackMainWindowShowing),
MainWindowShowingCallback,
NULL,
&MainWindowShowingCallbackRegistration
);
PhRegisterCallback(
PhGetPluginCallback(PluginInstance, PluginCallbackMenuItem),
MenuItemCallback,
NULL,
&PluginMenuItemCallbackRegistration
);
PhRegisterCallback(
PhGetPluginCallback(PluginInstance, PluginCallbackShowOptions),
ShowOptionsCallback,
NULL,
&PluginShowOptionsCallbackRegistration
);
PhAddSettings(settings, sizeof(settings) / sizeof(PH_SETTING_CREATE));
}
break;
}
return TRUE;
}
VOID NTAPI LoadCallback(
__in_opt PVOID Parameter,
__in_opt PVOID Context
)
{
InitGfx();
}
VOID NTAPI UnloadCallback(
__in_opt PVOID Parameter,
__in_opt PVOID Context
)
{
if (NvAPI_Unload)
NvAPI_Unload();
}
VOID NTAPI MainWindowShowingCallback(
__in_opt PVOID Parameter,
__in_opt PVOID Context
)
{
PhPluginAddMenuItem(PluginInstance, PH_MENU_ITEM_LOCATION_VIEW, NULL, GFXINFO_MENUITEM, L"Graphics Information", NULL);
}
VOID NTAPI MenuItemCallback(
__in_opt PVOID Parameter,
__in_opt PVOID Context
)
{
PPH_PLUGIN_MENU_ITEM menuItem = (PPH_PLUGIN_MENU_ITEM)Parameter;
switch (menuItem->Id)
{
case GFXINFO_MENUITEM:
{
ShowDialog();
}
break;
}
}
VOID NTAPI ShowOptionsCallback(
__in_opt PVOID Parameter,
__in_opt PVOID Context
)
{
//DialogBox(
// (HINSTANCE)PluginInstance->DllBase,
// MAKEINTRESOURCE(IDD_OPTIONS),
// (HWND)Parameter,
// OptionsDlgProc
// );
}