IWiaDevMgr2
에 GetImageDlg
으로 전화하려고합니다. (내가 사용하지 않고있는) 여러 가지 유형을 참조하는 아주 복잡한 방법이 많이 있습니다. ComImport
을 자동으로 생성 할 TLB 또는 IDL을 찾을 수 없으므로 참조 된 모든 유형을 수동으로 번역하지 않아도됩니다.ComImport에서 사용하지 않는 메소드 서명을 단순화 할 수 있습니까?
나는만큼 내가 중 하나를 호출하지 않는 한하고, 잘 작동하는 보인다
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("79C07CF1-CBDD-41ee-8EC3-F00080CADA7A")]
public interface IWiaDevMgr2_Fake
{
void VTablePlaceholder0();
void VTablePlaceholder1();
void VTablePlaceholder2();
void VTablePlaceholder3();
void VTablePlaceholder4();
void VTablePlaceholder5();
void VTablePlaceholder6();
[return: MarshalAs(UnmanagedType.Interface)]
object GetImageDlg(
int lFlags,
[MarshalAs(UnmanagedType.BStr)] string bstrDeviceID,
IntPtr IntPtrParent,
[MarshalAs(UnmanagedType.BStr)] string bstrFolderName,
[MarshalAs(UnmanagedType.BStr)] string bstrFilename,
/* [out] */ out int plNumFiles,
/* [size_is][size_is][out] */ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 5, ArraySubType = UnmanagedType.BStr)] out string[] ppbstrFilePaths);
};
모두에
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("79C07CF1-CBDD-41ee-8EC3-F00080CADA7A")]
public interface IWiaDevMgr2
{
IEnumWIA_DEV_INFO EnumDeviceInfo(
int lFlags);
IWiaItem2 CreateDevice(
int lFlags,
[MarshalAs(UnmanagedType.BStr)] string bstrDeviceID);
// ...snip five other method declarations...
IWiaItem2 GetImageDlg(
int lFlags,
[MarshalAs(UnmanagedType.BStr)] string bstrDeviceID,
IntPtr IntPtrParent,
[MarshalAs(UnmanagedType.BStr)] string bstrFolderName,
[MarshalAs(UnmanagedType.BStr)] string bstrFilename,
/* [out] */ out int plNumFiles,
/* [size_is][size_is][out] */ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 5, ArraySubType = UnmanagedType.BStr)] out string[] ppbstrFilePaths);
};
에서 대체하여 방법과 유형 "건너 뛰기"수 자리 표시 자. 결과없이이 작업을 수행 할 수 있습니까?