ITaskScheduler::NewWorkItem 메서드(mstask.h)
[[이 API는 운영 체제 또는 제품의 후속 버전에서 변경되거나 사용할 수 없습니다. 대신 작업 스케줄러 2.0 인터페이스를 사용하세요.] ]
NewWorkItem 메서드는 작업 항목의 공간을 할당하고 해당 주소를 검색하는 새 작업 항목을 만듭니다.
구문
HRESULT NewWorkItem(
[in] LPCWSTR pwszTaskName,
[in] REFCLSID rclsid,
[in] REFIID riid,
[out] IUnknown **ppUnk
);
매개 변수
[in] pwszTaskName
새 작업 항목의 이름을 지정하는 null로 끝나는 문자열입니다. 이 이름은 Windows NT 파일 명명 규칙을 준수해야 하지만 작업 폴더 개체 내의 중첩은 허용되지 않으므로 백슬래시를 포함할 수 없습니다.
[in] rclsid
만들 작업 항목의 클래스 식별자입니다. 현재 지원되는 유일한 클래스인 작업 클래스에는 식별자 CLSID_Ctask 있습니다.
[in] riid
요청되는 인터페이스의 참조 식별자입니다. 현재 지원되는 유일한 인터페이스인 ITask에는 식별자 IID_ITask 있습니다.
[out] ppUnk
요청된 인터페이스를 수신하는 인터페이스 포인터에 대한 포인터입니다. 디스크에 작업 항목을 저장하는 방법에 대한 자세한 내용은 비고를 참조하세요.
반환 값
NewWorkItem 메서드는 다음 값 중 하나를 반환합니다.
반환 코드 | Description |
---|---|
|
작업이 완료되었습니다. |
|
지정된 이름의 작업 항목이 이미 있습니다. 실제 반환 값은 HRESULT_FROM_WIN32(ERROR_FILE_EXISTS)입니다. |
|
하나 이상의 인수가 잘못되었습니다. |
|
메모리가 부족 하 여 작업을 완료할 수 없습니다. |
|
호출자에게 작업을 수행할 수 있는 권한이 없습니다. 자세한 내용은 예약된 작업 항목을 참조하세요. |
설명
이 메서드는 새 작업 항목을 만들 때 메모리 할당을 자동으로 처리합니다.
작업 항목을 디스크에 저장하려면 IPersistFile::Save 를 호출합니다. 이 COM 인터페이스는 모든 작업 항목 인터페이스에서 지원됩니다(현재 ITask 는 유일하게 지원되는 작업 항목 인터페이스임).
작업 스케줄러는 작업 항목을 추가하는 두 가지 방법인 NewWorkItem 및 AddWorkItem을 제공합니다. 이러한 메서드 중 각각에는 특정 이점이 있습니다. AddWorkItem 은 명명 충돌을 방지하지만 호출당 두 개의 디스크 쓰기 작업이 필요합니다. AddWorkItem 호출에서 디스크에 빈 작업 항목 개체를 만든 다음 IPersistFile::Save가 호출될 때 다른 쓰기 작업이 수행됩니다.
AddWorkItem 또는 NewWorkItem을 호출하여 작업을 만들 수 있습니다. AddWorkItem을 사용하는 경우 Task 개체의 instance 만든 다음(ITask 인터페이스를 지원) 제공한 이름으로 작업을 추가해야 합니다.
NewWorkItem 은 명명 충돌을 방지하지 않지만 IPersistFile::Save 가 호출되면 하나의 디스크 쓰기 작업만 필요합니다. NewWorkItem은 디스크 쓰기 작업과 관련하여 더 효율적이지만 IPersistFile::Save를 호출하기 전에 다른 애플리케이션이 동일한 이름의 작업 항목을 만들 위험이 있습니다.
의 전체 예제는 다음과 같습니다. | 참조 |
---|---|
새 작업 만들기 | NewWorkItem 예제를 사용하여 작업 만들기 |
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | mstask.h |
라이브러리 | Mstask.lib |
DLL | Mstask.dll |
재배포 가능 파일 | Windows NT 4.0 및 Windows 95에서 인터넷 Explorer 4.0 이상 |