DirectX 9.0 의 소개 DirectX SDK 의 사용법 DirectX 와 Windows XP   [목차열람] [주소복사] [슬롯비우기]
DirectX 와 Windows XP
 
Microsoft DirectX 9.0

DirectX 와 Windows XP


이 주제에는, Microsoft® Windows® XP 로 Microsoft DirectX® 를 사용하기 위한 힌트가 기재되어 있다.

복수 사용자의 취급

Windows XP 를 사용하면 동시에 복수의 사용자가 1 대의 컴퓨터에 로그 온 할 수 있다. 애플리케이션으로 동시에 복수의 인스턴스를 실행할 수 없는 경우, 다른 인스턴스가 실행중인지 아닌지를 확인하고 나서, 새로운 인스턴스를 시작 할 필요가 있다. 데스크탑 세션에 걸쳐 FindWindow 는 사용할 수 없다. FindWindow 는, 현재의 세션내에서만 동작한다.

애플리케이션의 인스턴스가 이미 실행중인지 아닌지를 확인하려면 , 글로벌 뮤텍스를 사용한다. 인스턴스가 실행중의 경우,FindWindow 를 사용해, 그 인스턴스가 현재의 세션에 있을지 어떨지 확인해, 윈도우를 복원할 수 있다. 현재의 세션에 없는 경우, 애플리케이션을 사용할 수 없는 것을 사용자에 통지하면 좋다.

간이 사용자 변환

간이 사용자 변환을 사용하면 세션간에서의 사용자의 변환이 가능하게 된다. 사용자는, 다른 사용자가 세션을 시작 하기 위해서 애플리케이션을 종료하거나 로그아웃 하거나 할 필요는 없다. 그 대신해, 간이 사용자 변환을 사용하는 것으로, 다른 사용자가 컴퓨터에 로그 온 해, 작업을 실행할 수 있다.

DirectX 애플리케이션은, 이러한 상황에 대응할 수 있어야 한다. 사용자 세션이 변경되면 Windows 는 WM_WTSSESSION_CHANGE 메시지를 송신한다. 이 메시지를 수신하기 위해서는, 애플리케이션은 WTSRegisterSessionNotification 를 호출해 윈도우 핸들을 등록할 필요가 있다.

  디폴트로 윈도우를 풀 스크린으로 설정하는 Microsoft DirectDraw® 및 Microsoft Direct3D® 애플리케이션에서는, 간이 사용자 변환은 허가되지 않는다.

파일의 저장

Windows XP 에는, 관리자와 제한부 사용자의 2 종류의 사용자가 존재한다. 관리자는, 모든 하드 디스크에 대한 읽기/쓰기 액세스권을 가지고 있다. 제한부 사용자는, 하드 디스크상에서 데이터의 쓰기가 생기는 영역이 일부에만 제한된다.

제한부 사용자가 쓰기 액세스권을 가지고 있는 하드 디스크의 영역, 즉 DirectX 애플리케이션이 제한부 사용자용으로 정보를 저장 할 수 있는 유일한 장소는, 다음의 (디폴트의) 디렉토리이다.

CSIDL폴더
CSIDL_COMMON_DOCUMENTSC:\Documents and Settings\All Users\Documents
CSIDL_PERSONALC:\Documents and Settings\<username>\MyDocuments
CSIDL_COMMON_APPDATAC:\Documents and Settings\All Users\Application Data
CSIDL_LOCAL_APPDATAC:\Documents and Settings\<username>\Application Data

인스톨은 디폴트로 Program Files 디렉토리 (CSIDL_PROGRAM_FILES)에 대해서 행해지기 (위해)때문에, 관리자만이 애플리케이션을 인스톨 할 수 있다. 제한부 사용자가 애플리케이션을 인스톨 하려고 했을 경우는, 통지 메시지 박스를 표시해, 인스톨을 실시하려면 관리자 권한이 필요한 일을 사용자에 알리는 것.

이러한 장소는 모두, 하드 코딩 하는 것이 아니라, 적절한 CSIDLSHGetFolderPath 함수에 건네주는 것에 의해 결정한다.

애플리케이션이 생성하는 데이터 파일은, 제한부의 사용자를 고려해 저장 한다. 다음 표를 참조해 데이터의 저장 장소를 결정하는 것.

데이터에 액세스 할 수 있는 사용자CSIDL사용자에 의한 데이터의 로드·표시·변경
모든 사용자CSIDL_COMMON_APPDATA불가시스템 구성
현재의 사용자CSIDL_LOCAL_APPDATA불가키보드의 바인드
모든 사용자CSIDL_COMMON_DOCUMENTS가능보존되고 있는 공유 파일
현재의 사용자CSIDL_PERSONAL가능보존되고 있는 Private 파일

  사용자가 데이터의 로드, 표시, 변경을 실시하게 되어 있는 경우는, 애플리케이션에 파일이 관련짓고와 아이콘 표시가 설정되어 있는 것을 확인한다.

레지스트리에의 저장

레지스트리에 올바르게 데이터를 저장 하려면 , 다음의 가이드 라인에 따르는 것.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP