⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 odbccp32.c

📁 ReactOS是一些高手根据Windows XP的内核编写出的类XP。内核实现机理和API函数调用几乎相同。甚至可以兼容XP的程序。喜欢研究系统内核的人可以看一看。
💻 C
字号:
/* $Id: odbccp32.c 26263 2007-04-04 18:43:24Z janderwald $
 *
 * PROJECT:         ReactOS ODBC Control Panel Applet
 * FILE:            lib/cpl/main/main.c
 * PURPOSE:         applet initialization
 * PROGRAMMER:      Johannes Anderwald
 */

#include "odbccp32.h"

HINSTANCE hApplet = NULL;
APPLET_PROC ODBCProc = NULL;
HMODULE hLibrary = NULL;


LONG
CALLBACK
CPlApplet(HWND hwndCpl,
		  UINT uMsg,
		  LPARAM lParam1,
		  LPARAM lParam2)
{
	if (ODBCProc == NULL)
	{
		TCHAR szBuffer[MAX_PATH];

		if (ExpandEnvironmentStrings(_T("%systemroot%\\system32\\odbccp32.dll"),
									 szBuffer,
									 sizeof(szBuffer) / sizeof(TCHAR)) > 0)
		{
			hLibrary = LoadLibrary(szBuffer);
			if (hLibrary)
			{
				ODBCProc = (APPLET_PROC)GetProcAddress(hLibrary, "ODBCCPlApplet");
			}
		}
	}

	if (ODBCProc)
	{
		return ODBCProc(hwndCpl, uMsg, lParam1, lParam2);
	}
	else
	{
		if(hLibrary)
		{
			FreeLibrary(hLibrary);
		}

		TerminateProcess(GetCurrentProcess(), -1);
		return (LONG)-1;
	}
}


BOOL
WINAPI
DllMain(HINSTANCE hinstDLL,
		DWORD dwReason,
		LPVOID lpReserved)
{
	INITCOMMONCONTROLSEX InitControls;
	UNREFERENCED_PARAMETER(lpReserved);

	switch(dwReason)
	{
		case DLL_PROCESS_ATTACH:
		case DLL_THREAD_ATTACH:

			InitControls.dwSize = sizeof(INITCOMMONCONTROLSEX);
			InitControls.dwICC = ICC_LISTVIEW_CLASSES | ICC_UPDOWN_CLASS | ICC_BAR_CLASSES;
			InitCommonControlsEx(&InitControls);

			hApplet = hinstDLL;
			break;
  }

  return TRUE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -