다음을 통해 공유


MAPISAVEMAIL 콜백 함수(mapi.h)

[이 함수의 사용은 권장되지 않습니다. 이후 버전의 Windows에서는 변경되거나 사용할 수 없습니다.]

MAPISaveMail 함수는 메시지를 메시지 저장소에 저장합니다.

구문

MAPISAVEMAIL Mapisavemail;

ULONG Mapisavemail(
  [in] LHANDLE lhSession,
  [in] ULONG_PTR ulUIParam,
  [in] lpMapiMessage lpMessage,
  [in] FLAGS flFlags,
       ULONG ulReserved,
  [in] LPSTR lpszMessageID
)
{...}

매개 변수

[in] lhSession

단순 MAPI 세션 또는 0에 대한 핸들입니다. lpszMessageID 매개 변수에 유효한 메시지 식별자가 포함된 경우 lhSession 매개 변수의 값은 0이 아니어야 합니다. 그러나 lpszMessageID 에 유효한 메시지 식별자가 포함되어 있지 않고 lhSession 값이 0이면 MAPI는 사용자를 로그하고 호출 기간 동안만 존재하는 세션을 만듭니다. 이 임시 세션은 기존 공유 세션 또는 새 세션일 수 있습니다. 필요한 경우 로그온 대화 상자가 표시됩니다.

[in] ulUIParam

대화 상자가 표시되면 애플리케이션 모달임을 나타내는 부모 창 핸들 또는 0입니다. ulUIParam 매개 변수에 부모 창 핸들이 포함된 경우 HWND 형식입니다(ULONG_PTR 캐스팅). 호출 중에 대화 상자가 표시되지 않으면 ulUIParam 은 무시됩니다.

[in] lpMessage

저장할 메시지의 내용을 포함하는 MapiMessage 구조를 가리키는 입력 매개 변수입니다. lpOriginator 멤버는 무시됩니다. 애플리케이션은 flFlags 멤버를 무시하거나 메시지가 저장되지 않은 경우 MAPI_SENT 및 MAPI_UNREAD 플래그를 설정할 수 있습니다.

[in] flFlags

옵션 플래그의 비트 마스크입니다. 다음 플래그를 설정할 수 있습니다.

의미
MAPI_LOGON_UI
필요한 경우 사용자에게 로그온하라는 메시지를 표시하는 대화 상자가 표시되어야 합니다. MAPI_LOGON_UI 플래그가 설정되지 않은 경우 클라이언트 애플리케이션은 로그온 대화 상자를 표시하지 않고 사용자가 로그온하지 않은 경우 오류 값을 반환합니다. lpszMessageID 매개 변수가 비어 있으면 MAPISaveMail은 이 플래그를 무시합니다.
MAPI_LONG_MSGID
반환된 메시지 식별자는 512자여야 합니다. 이 플래그가 설정되면 lpszMessageID 매개 변수는 512자를 수용할 수 있을 만큼 커야 합니다.
MAPI_NEW_SESSION
환경의 공유 세션을 획득하는 대신 새 세션을 만들려고 시도해야 합니다. MAPI_NEW_SESSION 플래그가 설정되지 않은 경우 MAPISaveMail 은 기존 공유 세션을 사용합니다.

ulReserved

예약; 0이어야 합니다.

[in] lpszMessageID

저장 작업으로 바꿀 메시지 식별자 또는 새 메시지를 만들려는 빈 문자열에 대한 포인터입니다. 문자열은 호출자가 할당해야 하며 flFlags 매개 변수가 MAPI_LONG_MSGID 설정된 경우 512자 이상을 보유할 수 있어야 합니다. flFlags 매개 변수가 MAPI_LONG_MSGID 설정되지 않은 경우 메시지 식별자 문자열은 64자를 포함할 수 있습니다.

반환 값

이 함수는 다음 값 중 하나를 반환합니다.

반환 코드 설명
MAPI_E_ATTACHMENT_NOT_FOUND
지정된 경로에 첨부 파일을 찾을 수 없습니다. 드라이브 문자가 잘못되었거나, 해당 드라이브에서 경로를 찾을 수 없거나, 해당 경로에서 파일을 찾을 수 없습니다.
MAPI_E_BAD_RECIPTYPE
lpMessage의 받는 사람 유형이 잘못되었습니다.
MAPI_E_FAILURE
메시지를 저장하는 동안 하나 이상의 지정되지 않은 오류가 발생했습니다. 메시지가 저장되지 않았습니다.
MAPI_E_INSUFFICIENT_MEMORY
메시지를 저장할 메모리가 부족했습니다. 메시지가 저장되지 않았습니다.
MAPI_E_INVALID_MESSAGE
lpszMessageID 매개 변수에 잘못된 메시지 식별자가 전달되었습니다. 메시지가 저장되지 않았습니다.
MAPI_E_INVALID_RECIPS
메시지의 받는 사람이 하나 이상 잘못되었거나 식별할 수 없습니다.
MAPI_E_INVALID_SESSION
lhSession 매개 변수에 잘못된 세션 핸들이 전달되었습니다. 메시지가 저장되지 않았습니다.
MAPI_E_LOGIN_FAILURE
기본 로그온이 없었고 로그온 대화 상자가 표시되었을 때 사용자가 성공적으로 로그온하지 못했습니다. 메시지가 저장되지 않았습니다.
MAPI_E_NOT_SUPPORTED
기본 메시징 시스템에서는 작업이 지원되지 않았습니다.
MAPI_E_USER_ABORT
사용자가 대화 상자 중 하나를 취소했습니다. 메시지가 저장되지 않았습니다.
SUCCESS_SUCCESS
호출이 성공하고 메시지가 저장되었습니다.

설명

MAPISaveMail 함수는 메시지를 저장하고 필요에 따라 기존 메시지를 바꿉니다. MAPISaveMail을 호출하기 전에 MAPIFindNext 함수를 사용하여 저장할 메시지가 저장하려는 메시지인지 확인합니다. lpszMessageID 매개 변수로 식별된 메시지의 요소는 lpMessage 매개 변수의 요소로 대체됩니다. lpszMessageID가 비어 있으면 새 메시지가 만들어집니다. 대체된 모든 메시지는 해당 폴더에 저장됩니다. 새 메시지는 해당 클래스의 들어오는 메시지에 적합한 폴더에 저장됩니다.

모든 메시징 시스템에서 메시지 저장을 지원하는 것은 아닙니다. 기본 메시징 시스템에서 메시지 스토리지를 지원하지 않는 경우 MAPISaveMail 은 MAPI_E_NOT_SUPPORTED 값을 반환합니다.

메시지 식별자는 시스템별 및 불투명하며 언제든지 무효화될 수 있으므로 MAPISaveMail 은 메시지 식별자가 현재 단순 MAPI 세션에 대해서만 유효하다고 간주합니다. MAPISaveMail 은 MAPI_E_INVALID_MESSAGE 값을 반환하여 잘못된 메시지 식별자를 처리합니다.

요구 사항

   
대상 플랫폼 Windows
헤더 mapi.h

참고 항목

MAPIFindNext

MAPILogon

MapiMessage

간단한 MAPI