MAPI Advise () call이 0x8007000E를 반환 합니다 (E_OUTOFMEMORY).

원래 수 (kbps):   269794

증상

Advise 함수에 7800에 대 한 7900 시간을 호출 하면 0x8007000E (E_OUTOFMEMORY) 오류와 함께 다음 Advise 호출이 실패할 수 있습니다.

원인

알림-호출 Advise에서 등록 하 고 공유 메모리 공간을 사용 합니다. 기본적으로 힙 크기는 0x100000로 설정 됩니다. 새 알림을 등록할 때 힙 크기가 초과 되 면 E_OUTOFMEMORY 오류가 반환 됩니다.

이 제한은 시스템 전체에 적용 됩니다. 즉, Advise를 호출 하는 2 개의 프로그램을 실행 하는 경우 두 프로그램에 모두 결합 된 최대값은 7900 미만 이어야 합니다.

해결 방법

다음 레지스트리 키를 설정 하 여 힙 크기를 0x800000 보다 높게 구성할 수 있습니다.

HKLM\SOFTWARE\Microsoft\Windows 메시징 하위 시스템
값 이름: SharedMemMaxSize
값 형식: REG_DWORD
값 데이터: 0x800000

HKLM\SOFTWARE\Microsoft\Windows Messaging Subsystem\Applications\<MyApp>
값 이름: SharedMemMaxSize
값 형식: REG_DWORD
값 데이터: 0x800000

이 시나리오에서 <MyApp> 는 응용 프로그램의 이름입니다 (.exe 확장명 제외). 예를 들어 응용 프로그램이 Mad.exe 된 경우 값으로 MAD를 입력 <MyApp> 합니다.