📄 enumcpl.cpp
字号:
// enumcpl.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <cpl.h>
int main(int argc, char **argv, char **envp)
{
union {
NEWCPLINFOA NewCplInfoA;
NEWCPLINFOW NewCplInfoW;
} Newcpl;
HINSTANCE hLib; // Library Handle to *.cpl file
APPLET_PROC CplCall; // Pointer to CPlApplet() function
LONG i;
// -------------------
if (!(hLib = LoadLibrary(argv[1])))
return 1;
if (!(CplCall=(APPLET_PROC)GetProcAddress(hLib,"CPlApplet")))
{
FreeLibrary(hLib);
return 2;
}
// -------------------
CplCall(NULL, CPL_INIT,0,0); // Init the *.cpl file
for (i=0;i<CplCall(NULL,CPL_GETCOUNT,0,0);i++)
{
printf("Control %s",argv[1]);
Newcpl.NewCplInfoA.dwSize = 0;
Newcpl.NewCplInfoA.dwFlags = 0;
CplCall(NULL,CPL_NEWINQUIRE,i,(long)&Newcpl);
if (Newcpl.NewCplInfoA.dwSize == sizeof(NEWCPLINFOW))
{ // Case #1, CPL_NEWINQUIRE has returned an Unicode String
wprintf(L",%s\n", Newcpl.NewCplInfoW.szName);
}
else
{ // Case #2, CPL_NEWINQUIRE has returned an ANSI String
if (Newcpl.NewCplInfoA.dwSize != sizeof(NEWCPLINFOA))
{
// Case #3, CPL_NEWINQUIRE failed to return a string
// Get the string from the *.cpl Resource instead
CPLINFO CInfo;
CplCall(NULL,CPL_INQUIRE,i,(long)&CInfo);
LoadStringA(hLib,CInfo.idName,
Newcpl.NewCplInfoA.szName,32);
}
printf(",%s\n", Newcpl.NewCplInfoA.szName);
}
} // for
CplCall(NULL,CPL_EXIT,0,0);
// -------------------
FreeLibrary(hLib);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -