Windows API-เดฏเตโ€Œเด•เตเด•เดพเดฏเดฟ เดฎเตˆเด•เตเดฐเต‹เดธเต‹เดซเตเดฑเตเดฑเต เด”เดฆเตเดฏเต‹เด—เดฟเด• เดฑเดธเตเดฑเตเดฑเต เดฒเตˆเดฌเตเดฐเดฑเดฟ เดชเตเดฑเดคเตเดคเดฟเดฑเด•เตเด•เดฟ

MIT เดฒเตˆเดธเตปเดธเดฟเดจเต เด•เต€เดดเดฟเดฒเตเดณเตเดณ เด’เดฐเต เดฑเดธเตเดฑเตเดฑเต เด•เตเดฐเดพเดฑเตเดฑเดพเดฏเดฟเดŸเตเดŸเดพเดฃเต เดฒเตˆเดฌเตเดฐเดฑเดฟ เดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด…เดคเต เด‡เดคเตเดชเต‹เดฒเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚:

[dependencies] windows = "0.2.1"

[build-dependencies] windows = "0.2.1"

เด…เดคเดฟเดจเตเดถเต‡เดทเด‚, build.rs เดฌเดฟเตฝเดกเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเตฝ, เดจเดฟเด™เตเด™เดณเตเดŸเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚:

fn เดชเตเดฐเดงเดพเดจ() {
windows::build!(
windows::data::xml::dom::*
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject}
windows::win32::windows_programming::CloseHandle
);
}

เดฒเดญเตเดฏเดฎเดพเดฏ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต docs.rs.

เดธเดพเดฎเตเดชเดฟเตพ เด•เต‹เดกเต:

เดฎเต‹เดกเต เดฌเตˆเตปเดกเดฟเด‚เด—เตเด•เตพ {
:: windows::include_bindings!();
}

เดฌเตˆเตปเดกเดฟเด‚เด—เตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•::{
windows::data::xml::dom::*,
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject},
windows::win32::windows_programming::CloseHandle,
};

fn main() -> windows::Result<()> {
doc = XmlDocument:: new()?;
doc.load_xml(" เดนเดฒเต‡เดพ เดตเต‡เตพเดกเต ")?;

เดฑเต‚เดŸเตเดŸเต เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเด• = doc.document_element()?;
เด‰เดฑเดชเตเดชเดฟเด•เตเด•เตเด•!(root.node_name()? == "html");
เด‰เดฑเดชเตเดชเดฟเด•เตเด•เตเด•!(root.inner_text()? == "เดนเดฒเต‹ เดตเต‡เตพเดกเต");

เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดฒเตเดฒ {
เด‡เดตเดจเตเดฑเต = CreateEventW(
std::ptr::null_mut(),
true.into(),
false.into(),
std::ptr::null(),
);

SetEvent(event).ok()?;
WaitForSingleObject(เด‡เดตเดจเตเดฑเต, 0);
CloseHandle(event).ok()?;
}

เดถเดฐเดฟ(())
}

เดฑเดธเตเดฑเตเดฑเต เด•เตบเดตเต†เตปเดทเดจเตเด•เตพเด•เตเด•เต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเด•เตเด•เดพเดคเต† เดคเดจเตเดจเต† เดˆ เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพ เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ เดšเดฟเดฒ เดซเด‚เด—เตโ€Œเดทเตป เด•เต‹เดณเตเด•เตพ เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดฒเตเดฒ. เด…เดคเต‡ เดคเดคเตเดตเดคเตเดคเดฟเดฒเดพเดฃเต เด•เตเดฐเดพเดฑเตเดฑเต เดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต. libc, เด‡เดคเต libc เด†เด•เตโ€Œเดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด…เดŸเดฟเดธเตเดฅเดพเดจ เด•เตเดฐเดพเดฑเตเดฑเดพเดฏเดฟ เดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต เด•เต‚เดŸเดพเดคเต† เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดพเดฏ เด‡เดจเตเดฑเตผเดซเต‡เดธเต เด‰เดณเตเดณ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเดฏเตเด‚ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.


เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเดฟเดจเตเดณเตเดณเดฟเดฒเดพเดฃเต เดชเดฆเตเดงเดคเดฟ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดคเต Win32 เดฎเต†เดฑเตเดฑเดพเดกเดพเดฑเตเดฑ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต, เดตเดฟเดตเดฟเดง เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเด•เตพเด•เตเด•เดพเดฏเดฟ API-เด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดณเตเดณเดคเดพเดฃเต. เดชเดฆเตเดงเดคเดฟเดฏเตเดŸเต† เด†เดฆเตเดฏ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดฎเต†เดฑเตเดฑเดพเดกเดพเดฑเตเดฑ เดชเตเดฐเต‹เดœเด•เตเดŸเดฟเดจเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดฒเตˆเดฌเตเดฐเดฑเดฟ - C#/Win32. เดฎเตˆเด•เตเดฐเต‹เดธเต‹เดซเตเดฑเตเดฑเตเด‚ เด‡เดคเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เด†เดฐเด‚เดญเดฟเดšเตเดšเดคเดพเดฏเดฟ เด…เดฑเดฟเดฏเดฟเดšเตเดšเต C++ เดจเดพเดฏเตเดณเตเดณ เดชเดคเดฟเดชเตเดชเต, เด…เดคเต เด†เดงเตเดจเดฟเด• เดญเดพเดทเดพ เดถเตˆเดฒเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

เด…เดตเดฒเด‚เดฌเด‚: linux.org.ru