IActiveDesktop 이라는 COM 객체에 대해 몇 가지 질문이 있습니다.
1. 이 객체로 바탕 화면의 표시 형식 (가운데, 늘이기, 바둑판식 배열)을 바꾸려면 어떤 메서드를 써야 하나요?
2. GetWallpaper 메서드가 현재 바탕 화면으로 지정된 그림 파일의 경로를 가져오는걸로 알고 있는데
이게 가져오는 방식이 경로 문자열 반환이 아니라 매개 변수를 통해서 문자열을 복사하는 거라서
C#에서 어떻게 이걸 이용해야 할 지 모르겠습니다.
HRESULT GetWallpaper(OUT LPWSTR pwszWallpaper, IN UINT cchWallpaper, IN DWORD dwFlags);
이런 꼴인데 이걸 C#에서 표현할려면
1번안.
interface IActiveDesktop
{
int GetWallpaper([Out][MarshalAs(UnmanagedType.LPWStr)] string pwszWallpaper, int cchWallpaper, int dwFlags);
}