1 // Momiji.Test.DeviceInfo.cpp :
\83\81\83C
\83\93 \83v
\83\8d\83W
\83F
\83N
\83g
\83t
\83@
\83C
\83\8b\82Å
\82·
\81B
4 #using <Momiji.Core.dll>
6 using namespace System;
14 gcnew Momiji::Core::DeviceInfo::Devices(
15 Momiji::Interop::Ks::StaticKs::CATEGORY_AUDIO,
17 Momiji::Interop::Setupapi::DIGCF::PRESENT
18 | Momiji::Interop::Setupapi::DIGCF::DEVICEINTERFACE
23 auto detailList = gcnew System::Collections::Generic::List<Momiji::Core::DeviceInfo::Devices::Detail^>;
26 for each(Momiji::Core::DeviceInfo::Devices::Detail^ detail in devices->Enum)
28 for each(Momiji::Interop::Setupapi::SPDRP spdrp in System::Enum::GetValues(Momiji::Interop::Setupapi::SPDRP::typeid)) {
29 detail->GetDeviceRegistryProperty(spdrp);
32 detail->GetDeviceRegistryProperty("FriendlyName");
34 auto alias = detail->GetAlias(Momiji::Interop::Ks::StaticKs::CATEGORY_RENDER);
40 if ((alias->Flags & Momiji::Interop::Setupapi::SPINT::REMOVED) == Momiji::Interop::Setupapi::SPINT::REMOVED)
42 System::Console::WriteLine("
\8dí
\8f\9c\8dÏ
\82Ý");
45 detailList->Add(detail);
54 for each(Momiji::Core::DeviceInfo::Devices::Detail^ detail in detailList) {
56 //Momiji::Core::DeviceInfo::Devices::Detail^ detail = System::Linq::Enumerable::Last(detailList);
58 //
\82±
\82±
\82Å
\8cÄ
\82Ñ
\8fo
\82·
\82Æ
\81A
\82¿
\82á
\82ñ
\82Æ
\83G
\83\89\81[
\82É
\82È
\82é
61 detail->GetAlias(Momiji::Interop::Ks::StaticKs::CATEGORY_CAPTURE);
63 catch(System::ObjectDisposedException^ e)
65 System::Console::WriteLine("Devices
\82ð
\89ð
\95ú
\8cã
\82Í
\91\80\8dì
\82Å
\82«
\82È
\82¢ [{0}]", e);
68 auto filter = gcnew Momiji::Core::Ks::Filter(detail->DevicePath);
71 for each (auto p in filter->propertySetPin->Items)
76 gcnew Momiji::Core::Ks::Pin<System::UInt16>(
82 Momiji::Interop::Winmm::WaveFormatExtensiblePart::SPEAKER::FRONT_LEFT
83 | Momiji::Interop::Winmm::WaveFormatExtensiblePart::SPEAKER::FRONT_RIGHT
85 Momiji::Interop::Ks::StaticKs::SUBTYPE_PCM
91 Console::WriteLine("====================================================");
92 System::Console::ReadLine();
99 catch(System::Exception^ e)
101 Console::WriteLine("Pin Error {0}", e);
102 Console::WriteLine("====================================================");
103 System::Console::ReadLine();
110 Console::WriteLine("
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡");
111 Console::WriteLine("delete filter ====================================================");
112 Console::WriteLine("
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡
\81¡");
114 System::Console::ReadLine();
117 catch(System::Exception^ e)
119 Console::WriteLine("ERROR:{0}", e);
125 int main(array<System::String ^> ^args)
128 System::GC::Collect();
129 System::GC::WaitForPendingFinalizers();
130 System::GC::Collect();
132 Console::WriteLine("====================================================");
133 System::Console::ReadLine();