Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.13;
Скачать: CL | DM;

Вниз

Кто может подкмнуть описание ф-ции SetupDiChangeState?   Найти похожие ветки 

 
yuger ©   (2002-02-11 10:24) [0]

Я где-то нарыл описание на С++:

WINSETUPAPI BOOL WINAPI
SetupDiChangeState(
IN HDEVINFO DeviceInfoSet,
IN OUT PSP_DEVINFO_DATA DeviceInfoData
);
К сожалению не смог найти описание
HDEVINFO и OUT PSP_DEVINFO_DATA

Еще нашел:

Как, например, сетевую карту "отключить в данной конфигурации" через Win32 API?
Мой компьютеp->Свойства->Устpойства->NetCard->Отключено в данной конфигypации можно сделать программно:
Если в Win95 DiChangeState(lpdi, DICS_DISABLE, DICS_FLAG_CONFIGSPECIFIC); - только yчтите, что setupx.dll 16-битовая
Если в 98 или nt SetupDiChangeState


Может кто знает как с ней работать в Delphi.
Ее описание на Delphi.

Эта функция включает/отключает устройство из конфигурации.


 
VuDZ ©   (2002-02-11 11:10) [1]

//
// Define type for reference to device information set
//
typedef PVOID HDEVINFO;


т.е. HDEVINFO - прсто указатель на что угодно

//
// Device information structure (references a device instance
// that is a member of a device information set)
//
typedef struct _SP_DEVINFO_DATA {
DWORD cbSize;
GUID ClassGuid;
DWORD DevInst; // DEVINST handle
ULONG_PTR Reserved;
} SP_DEVINFO_DATA, *PSP_DEVINFO_DATA;


PSP_DEVINFO_DATA - указатель на структуру _SP_DEVINFO_DATA


 
yuger ©   (2002-02-12 09:53) [2]

Спасибо за информацию.
Меня это интересует в контексте
вкл/откл устройства.
В каких полях и какие значения надо для включения и выключения
выставлять?
Заранее спасибо.


 
VuDZ ©   (2002-02-12 14:57) [3]

я с этим никогда не работал но есть такие мысли, сюдя по полям:
HDEVINFO = указатель на открытый каким-либо образом девайс

DWORD cbSize = размер структуры
GUID ClassGuid = GUID девайса - брать из реестра или другими методами
DWORD DevInst = бес понятия
ULONG_PTR Reserved = указатель на 32х переменную. т.к. reserved, я обычно в таких случаях пишу NULL, т.е. nil на паскале.

Попробуй поискать с инете, где-то да должны быть описания


 
VuDZ ©   (2002-02-14 13:00) [4]


(C)Галина

void DisableLPT(TECP *ECP)
{
SP_DEVINFO_DATA DevInfoData;
DevInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
SP_PROPCHANGE_PARAMS DevChngParams;
DevChngParams.ClassInstallHeader.cbSize = sizeof(SP_CLASSINSTALL_HEADER);
DevChngParams.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE;
DevChngParams.StateChange = DICS_DISABLE;
DevChngParams.Scope = DICS_FLAG_GLOBAL;
DevChngParams.HwProfile = 0;
//char PropertyBuffer[5000];

GUID ClassGuid = {0x4D36E978, 0xE325, 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18};
//GUID ClassGuid = {0x78A1C341, 0x4539, 0x11D3, 0xB8, 0x8D, 0x00, 0xC0, 0x4F, 0xAD, 0x56, 0x71};
bool t;

DevInfo = SetupDiGetClassDevs(
&ClassGuid,
NULL,
NULL,
0
);
t = INVALID_HANDLE_VALUE!=DevInfo;

wchar_t WideCharStr[1000];
MultiByteToWideChar(
CP_ACP,
NULL,
ECP->DeviceName,
-1,
WideCharStr,
1000
);

t = SetupDiOpenDeviceInfo(
DevInfo,
ECP->DeviceName,
NULL,
0,
&DevInfoData
);
//DWORD RequiredSize = sizeof(DevChngParams);
t = SetupDiSetClassInstallParams(
DevInfo,
&DevInfoData,
(PSP_CLASSINSTALL_HEADER)&DevChngParams,
sizeof(DevChngParams)
);
// GetError();

t = SetupDiCallClassInstaller(
DIF_PROPERTYCHANGE,
DevInfo,
&DevInfoData
);

}



Страницы: 1 вся ветка

Текущий архив: 2002.05.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.008 c
1-39750
ZimZum
2002-04-27 22:24
2002.05.13
Копирование текста


1-39759
PaRL
2002-04-27 20:00
2002.05.13
Chart


3-39679
AFROLOV
2002-04-09 15:58
2002.05.13
Как в таблицу Access засунуть документ Word и как с ним работать


1-39723
f0rm
2002-04-27 12:33
2002.05.13
tstringlist in inifile


3-39649
rvs
2002-04-17 11:38
2002.05.13
Query в Query