[개발/MFC] Vista 이상에서 ActiveX로 타 프로세스로 데이터 공유하기
쌈꼬쪼려 소백촌닭
매니페스트 적용은 당엲 requredAdministrator로 한다.
ActiveX에서 SendMessage(otherhandle, WM_COPYDATA, ..., ...);
Vista(비스타) 이상에서 낮은 권한의 프로세스에서 높은 권한의 프로세스로
WM_COPYDATA 메세지를 보내지 못한다. 따라서 높은 권한의 프로세스에서
권한 문제를 해결해주어야 한다.
typedef BOOL (WINAPI *CHANGEWINDOWMESSAGEFILTER)(UINT message, DWORD dwFlag);
CHANGEWINDOWMESSAGEFILTER ChangeWindowMessageFilter = NULL;
HINSTANCE hDll;
hDll = LoadLibrary("User32.dll");
if (hDll == NULL)
{
MessageBox(NULL, "User32.dll 파일이 존재하지 않습니다.", "Error", MB_OK);
}
ChangeWindowMessageFilter = (CHANGEWINDOWMESSAGEFILTER)GetProcAddress(hDll, "ChangeWindowMessageFilter");
if (ChangeWindowMessageFilter == NULL)
{
MessageBox(NULL, "ChangeWindowMessageFilter함수가 존재하지 않습니다.", "Error", MB_OK);
}
ChangeWindowMessageFilter(WM_COPYDATA, 1);
FreeLibrary(hDll);
높은 권한 프로세스 main에 추가해주면 된다고 한다.
아직 적용못해봤지만 해봐야겠다.
'IT-개발,DB' 카테고리의 다른 글
[개발/설계] 프로그래머를 위한 사용자 인터페이스 설계론 - Joel on software (0) | 2011.07.19 |
---|---|
[개발/MFC] base64 인코딩/디코딩 및 제거, 간단 소스 (0) | 2011.07.17 |
[개발/VS] 응용 프로그램을 위한 최상의 사용자 환경을 만드는 방법 (0) | 2011.07.05 |
[IT/MFC] LINK : fatal error LNK1000: Internal error during IncrBuildImage (0) | 2011.06.30 |
[개발/VC] xdebug, xlocale 관련 error (0) | 2011.06.16 |
댓글