Programming
-
[펌] 헤더정보를 이용한 C++에서의 컴포넌트(Component) 사용방법Programming/ActiveX 2008. 4. 15. 11:50
1. 컴포넌트 개발자가 배포하는 프로젝트명.h 파일을 사용하는 방법 프로젝트명.h -> 컴포넌트의 CLSID, 인터페이스에 대한 class 헤더, IID가 포함됨. // 프로젝트명.h MIDL_INTERFACE("FFAA434B-F6F5-4029-96FB-8876893C9EAA") IBlockSocket : public IDispatch { … }; … class DECLSPEC_UUID("BF9B9364-386A-4527-A03D-9254F59F5B9B") BlockSocket; 이러한 정보를 이용 인터페이스 포인터 선언 후 CoCreateInstance()함수를 호출하여 시스템에 등록된 컴포넌트 객체를 동적으로 생성한다. IBlockSocket *pISocket = NULL; hr = ::CoCrea..
-
GetFileVersionInfo : 파일 버전 확인하는 방법Programming/WINAPI 2008. 2. 6. 14:26
GetFileVersionInfo Function 특정파일의 버전정보를 확인할때 GetFileVersionInfo 함수를 사용합니다. BOOL GetFileVersionInfo( LPTSTR lptstrFilename, DWORD dwHandle, DWORD dwLen, LPVOID lpData ); Parameters lptstrFilename 버전을 확인할 파일명(전체경로포함). 만약 전체경로가 포함되지 않은 파일명인 경우 LoadLibrary함수에서 설명된 경로에서 파일을 검색합니다. Windows 95/98/Me: 해당 OS에서는 파일명이 126자보다 작아야 합니다. dwHandle 이 인자는 무시됩니다. ( 그냥 0 을 주시면 됩니다. ) dwLen GetFileVersionInfoSize함수로..
-
SHDeleteKey : 레지스트리키 한번에 지우기 (하위키가 있는 키 지우기)Programming/WINAPI 2008. 1. 31. 00:55
하위키를 가지고 있는 레지스트리키를 삭제할때 SHDeleteKey를 사용하면 말끔히 키가 삭제됩니다. LSTATUS SHDeleteKey(HKEY hKey, LPCTSTR pszSubKey); hkey 현재 오픈된 키의 핸들이나 아래와 같이 선언된 키를 사용 HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG HKEY_CURRENT_USER HKEY_DYN_DATA (MicrosoftWindows95 only) HKEY_LOCAL_MACHINE HKEY_PERFORMANCE_DATA (Microsoft Windows NTonly) HKEY_USERS pszSubKey 삭제할 서브키 ( 문자열 ) Return Value 성공시 ERROR_SUCCESS, 실패시 0 이 아닌값을 리턴하고 해당..
-
생성자함수에서 생성자(오버로딩)함수를 호출할때 주의할 점Programming/C,C++,C# 2008. 1. 11. 21:53
2012/03/26 해당글은 모든 컴파일러에서 사용할 수 있는 방법은 아닙니다. 자세한 내용은 http://www.gpgstudy.com/forum/viewtopic.php?p=24230 을 참고해주시기 바랍니다. class CTest { public: int m_val; CTest() { CTest(0); } CTest(int val) { m_val = val; } ~CTest(){} }; int main() { CTest test; printf("m_val : %d\n", test.m_val); return 0; } CTest클래스가 있습니다. 특별한 기능은 없고 생성자함수에서 멤버변수 m_val를 초기화를 하고있습니다. 클래스선언시에 인자값을 주지않으면 0으로 초기화 되도록 되어있습니다. 위 예제에..
-
컴퓨터 사용여부( 자리비움 ) 파악하는 방법Programming/WINAPI 2008. 1. 8. 22:39
네이트온이나 MSN메신저에서 일정시간동안 사용자가 컴퓨터를 사용하지 않으면.. 자리비움이나 부재중으로 상태가 변경이 됩니다. 이러한 기능을 이용한 프로그램으로는 스크린세이버가 제일 대표적이죠.. 아무튼 사용자가 컴퓨터를 사용하고 있는지을 어떻게 파악을 할까? 일단 컴퓨터를 사용한다는건 입력장치(마우스 나 키보드 등)을 사용하고 있다는것이겠죠.. 물론 영화감상같은 경우는 예외이긴하지만.. 위와 같은 상황은 제외하고 입력장치의 사용여부를 통해서 컴퓨터가 사용중인지를 파악하는게 제일 좋은 방법이겠죠.. 마우스와 키보드의 상태를 파악하기위해서는 후킹을 하는 방법이 아주 자세하게 상태를 파악할 수 있지만.. dll을 따로 만들어야한다는게 번거롭죠.. 그래서 간단하게 마우스 좌표를 파악하는 함수인 GetCursor..
-
GetWindowThreadProcessId : 핸들(HWND)값으로 ProcessID얻는 APIProgramming/WINAPI 2008. 1. 8. 13:16
GetWindowThreadProcessId 함수는 HWND 값을 이용하여 프로세스ID를 알려주는 함수입니다. DWORD GetWindowThreadProcessId ( HWND hWnd, LPDWORD lpdwProcessId ); Parameters hWnd : PID를 얻고자하는 윈도우의 핸들 lpdwProcessId : 반환받을 PID의 포인터 만약 NULL을 주는경우 PID는 리턴값으로 반환됩니다. Function Information Minimum DLL Version user32.dll Header Declared in Winuser.h, include Windows.h Import library User32.lib Minimum operating systems Windows 95, Wind..
-
레지스트리 키 보안 및 접근 권한 ( REGSAM )Programming/WINAPI 2008. 1. 5. 22:54
RegCreateKeyEx, RegOpenKeyEx 등과 같이 레지스트리키를 제어하는 API에서는 오픈하는 키에 대한 권한(쓰기/읽기 등)을 설정을 인자( REGSAM )가 있습니다. 그 REGSAM 에서 사용하는 옵션(mask)값은 아래와 같습니다. KEY_ALL_ACCESS (0xF003F) : 모든 권한을 받는다. ( 아래 옵션들의 조합 ) KEY_QUERY_VALUE, KEY_SET_VALUE, KEY_CREATE_SUB_KEY, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY, and KEY_CREATE_LINK . KEY_CREATE_LINK (0x0020) : 시스템에서 사용하는 옵션 KEY_CREATE_SUB_KEY (0x0004) : 서브키를 생성하는 권한 KEY_ENUME..