다음을 통해 공유


MsiAdvertiseScriptA 함수(msi.h)

MsiAdvertiseScript 함수는 보급된 스크립트 파일을 지정된 위치에 복사합니다.

구문

UINT MsiAdvertiseScriptA(
  [in] LPCSTR szScriptFile,
  [in] DWORD  dwFlags,
  [in] PHKEY  phRegData,
  [in] BOOL   fRemoveItems
);

매개 변수

[in] szScriptFile

MsiAdvertiseProduct 또는 MsiAdvertiseProductEx에서 생성된 스크립트 파일의 전체 경로입니다.

[in] dwFlags

SCRIPTFLAGS 컨트롤 보급 알림의 다음 비트 플래그입니다. dwFlags 값은 다음 값의 조합일 수 있습니다.

플래그 의미
SCRIPTFLAGS_CACHEINFO
0x001
아이콘을 만들거나 제거해야 하는 경우 이 플래그를 포함합니다.
SCRIPTFLAGS_SHORTCUTS
0x004
바로 가기를 만들거나 제거해야 하는 경우 이 플래그를 포함합니다.
SCRIPTFLAGS_MACHINEASSIGN
0x008
컴퓨터에 할당할 제품인 경우 이 플래그를 포함합니다.
SCRIPTFLAGS_REGDATA_CNFGINFO
0x020
레지스트리 데이터의 구성 및 관리 정보를 작성하거나 제거해야 하는 경우 이 플래그를 포함합니다.
SCRIPTFLAGS_VALIDATE_TRANSFORMS_LIST
0x040
이 제품에 대해 이전에 등록된 변환에 대해 스크립트에 나열된 변환의 유효성을 강제로 검사하려면 이 플래그를 포함합니다. 변환 충돌은 대/소문자를 구분하지 않는 문자열 비교를 사용하여 검색되며 모든 컨텍스트에서 사용자별 설치와 컴퓨터별 설치 간에 평가됩니다. 스크립트의 변환 목록이 제품에 등록된 변환과 일치하지 않으면 함수는 ERROR_INSTALL_TRANSFORM_FAILURE 반환합니다.
SCRIPTFLAGS_REGDATA_CLASSINFO
0x080
COM 클래스와 관련된 레지스트리의 보급 정보를 작성하거나 제거해야 하는 경우 이 플래그를 포함합니다.
SCRIPTFLAGS_REGDATA_EXTENSIONINFO
0x100
확장과 관련된 레지스트리의 보급 정보를 작성하거나 제거해야 하는 경우 이 플래그를 포함합니다.
SCRIPTFLAGS_REGDATA_APPINFO
0x180
레지스트리의 보급 정보를 작성하거나 제거해야 하는 경우 이 플래그를 포함합니다.
SCRIPTFLAGS_REGDATA
0x1A0
레지스트리의 보급 정보를 작성하거나 제거해야 하는 경우 이 플래그를 포함합니다.

[in] phRegData

레지스트리 데이터에 대한 임시 정보를 작성할 레지스트리 키입니다. 이 매개 변수가 null이면 보급 알림이 사용자별인지 머신당인지에 따라 레지스트리 데이터가 적절한 키 아래에 배치됩니다. 이 매개 변수가 null이 아닌 경우 스크립트는 일반 위치가 아닌 지정된 레지스트리 키 아래에 레지스트리 데이터를 씁니다. 이 경우 애플리케이션은 사용자에게 보급되지 않습니다.

레지스트리 키의 공급자가 일반적으로 키를 삭제하므로 사용자 또는 컴퓨터에 대한 제품 보급 알림을 생성할 때 이 레지스트리 키를 사용할 수 없습니다. 레지스트리 키는 셸, 클래스 및 .msi 구성 정보에 대한 일반 레지스트리 위치 외부에 있으며 HKEY_CLASSES_ROOT 아래에 있지 않습니다. 이 레지스트리 키는 스크립트에서 레지스트리 데이터에 대한 임시 정보를 가져오기 위한 것입니다.

[in] fRemoveItems

TRUE이면 지정된 항목을 만드는 대신 제거할 수 있습니다.

반환 값

의미
ERROR_SUCCESS
함수가 성공적으로 완료되었습니다.
ERROR_ACCESS_DENIED
호출 프로세스가 LocalSystem 계정에서 실행되고 있지 않습니다.
작업과 관련된 오류
오류 코드를 참조하세요.
초기화 오류
초기화와 관련된 오류가 발생했습니다.
ERROR_CALL_NOT_IMPLEMENTED
이 함수는 Windows 2000 및 Windows XP에서만 사용할 수 있습니다.
 
 

설명

이 함수를 호출하는 프로세스는 LocalSystem 계정에서 실행되어야 합니다. 대상 사용자에게 사용자별 설치를 위한 애플리케이션을 보급하려면 이 함수를 호출하는 스레드가 대상 사용자를 가장해야 합니다. 이 함수를 호출하는 스레드가 대상 사용자를 가장하지 않는 경우 애플리케이션은 상승된 권한으로 설치할 수 있도록 모든 사용자에게 보급됩니다.

참고

msi.h 헤더는 MSiAdvertiseScript를 별칭으로 정의하여 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows Server 2012, Windows 8, Windows Server 2008 R2 또는 Windows 7의 Windows Installer 5.0. Windows Server 2008 또는 Windows Vista의 Windows Installer 4.0 또는 Windows Installer 4.5. Windows Server 2003 또는 Windows XP의 Windows Installer. Windows Installer 버전에 필요한 최소 Windows 서비스 팩에 대한 자세한 내용은 Windows Installer 런타임 요구 사항을 참조하세요.
대상 플랫폼 Windows
헤더 msi.h
라이브러리 Msi.lib
DLL Msi.dll

참고 항목

설치 컨텍스트