32 ビットおよび 64 ビットのプラットフォームでの MAPI アプリケーションのビルド

適用対象: Outlook 2013 | Outlook 2016

このトピックでは、32 ビットの MAPI アプリケーションを 64 ビットのプラットフォームで実行する場合と、64 ビットのアプリケーションを 32 ビットのプラットフォームで実行する場合に、それぞれのアプリケーションに対して開発者が実施する必要のある変更およびリビルドの作業について説明します。 このトピックでの 64 ビット プラットフォームとは、64 ビット版の Microsoft Outlook と 64 ビット版の Windows がインストールされているコンピューターのことです。また、32 ビット プラットフォームとは、32 ビット版の Outlook と 32 ビット版または 64 ビット版の Windows がインストールされているコンピューターのことです。

オペレーティング システムと Office での 64 ビット版の Outlook のサポート

注:

ビット数という用語は、32 ビットと 64 ビットのプロセッサ アーキテクチャの区別と、それに関連するアプリケーションの互換性を表します。 このトピックでのビット数は、コンピューターのプロセッサ アーキテクチャ (32 ビットまたは 64 ビット) に適合するようにビルドされた Windows、Microsoft Office、Outlook、または MAPI アプリケーションと、そのコンピューターで実行される可能性のあるアプリケーションを限定するために使用しています。

Microsoft Office 2010 以降、Outlook は 32 ビット版および 64 ビット版アプリケーションとして入手できます。 Outlook のビット数は、同じコンピューターであっても Windows オペレーティング システムのビット数 (x86 または x64) と、Microsoft Office のビット数 (そのコンピューターに Office がインストールされている場合) に応じて決まります。 次に、32 ビット版または 64 ビット版の Outlook のインストールが可能かどうかを判断する際の要因の一部を示します。

  • 32 ビットの Office (および 32 ビットの Outlook) は、32 ビット版と 64 ビット版の Windows オペレーティング システムにインストールできます。 64 ビットの Office (および 64 ビットの Outlook) は、64 ビット版の Windows オペレーティング システムにのみインストールできます。

  • 64 ビット版 Windows オペレーティング システムに既定でインストールされる Office は、32 ビット版の Office です。

  • インストールされている Outlook のバージョンのビット数は、同一コンピューター上に Office がインストールされている場合、常に Office のビット数と同じになります。 つまり、32 ビット版の Outlook は、同じコンピューターに既に 64 ビット版の別の Office アプリケーション (64 ビット版 Microsoft Word や 64 ビット版 Microsoft Excel など) がインストールされていると、インストールできなくなるということです。 同様に、64 ビット版の Outlook は、同じコンピューターに 32 ビット版の別の Office アプリケーションがインストールされていると、インストールできなくなります。

32 ビットおよび 64 ビット プラットフォーム用の MAPI アプリケーションを準備する

MAPI アプリケーションには、Microsoft Communicator や MFCMAPI などのスタンドアロン アプリケーションと、アドレス帳プロバイダー、ストア プロバイダー、トランスポート プロバイダーなどのサービス プロバイダーが含まれます。 MAPI アプリケーションでの MAPI メソッドおよび関数の呼び出しが動作するには (1 つの簡易 MAPI 関数 MAPISendMail を除く)、MAPI アプリケーションのビット数が、アプリケーションの実行ターゲットとしているコンピューターの MAPI サブシステムのビット数と同じであることが必要です。 その MAPI サブシステムのビット数は、インストールされているバージョンの Outlook のビット数によって決まります (常に同じビット数になります)。 次の表は、異なるビット数の Office と Windows で構成されたターゲット コンピューターで実行する MAPI アプリケーションを準備するために必要な操作をまとめたものです。

MAPI アプリケーションのビット数 ターゲット コンピューター上の Outlook のビット数 ターゲット コンピューター上の Windows のビット数 ターゲット コンピューターでアプリケーションを実行できるようにするために必要な操作
32 ビット
32 ビット
32 ビットまたは 64 ビット
特別な操作は必要ありません。
32 ビット
64 ビット
64 ビット
64 ビット アプリケーションとして、アプリケーションをリビルドします。 それ以外の場合、すべての MAPI メソッドおよび関数の呼び出しは失敗します (MAPISendMail を除く)。
64 ビット
64 ビット
64 ビット
特別な操作は必要ありません。
64 ビット
32 ビット
32 ビットまたは 64 ビット
32 ビット アプリケーションとして、アプリケーションをリビルドします。 それ以外の場合、すべての MAPI メソッドおよび関数の呼び出しは失敗します (MAPISendMail を除く)。

次からの各セクションでは、それぞれのシナリオについて詳しく説明します。 MAPI アプリケーションのリビルドが必要になるシナリオについては、「MAPI 関数へのリンク」で MAPI 関数へのリンクと呼び出しに関する追加情報を参照してください。

32 ビット MAPI アプリケーションと 32 ビット Outlook

32 ビット版の Outlook (Microsoft Outlook 2013 より前のバージョンを含む) で利用可能な 32 ビット MAPI サブシステム用にコンパイルした MAPI アプリケーションは、32 ビット Outlook と 32 ビットまたは 64 ビット Windows オペレーティング システムがインストールされたコンピューターで引き続きサポートされます。 アプリケーション開発者に必要な特定の操作はありません。

32 ビット MAPI アプリケーションと 64 ビット Outlook

32 ビット MAPI アプリケーションは、64 ビット Outlook と 64 ビット Windows がインストールされたコンピューター上での実行はサポートされません。 アプリケーション開発者は、64 ビット プラットフォーム対応の 64 ビット アプリケーションとして、アプリケーションを更新してリビルドする必要があります。 これは、32 ビット アプリケーションでは 64 ビット版 Msmapi32.dll ファイルを読み込めないためです。 64 ビット環境で正常に動作するコードを作成するために、アプリケーション開発者が組み入れる必要がある、API のいくつかの変更があります。 MAPI ヘッダー ファイルは、そうした 64 ビット プラットフォームをサポートするための変更によって更新されています。 これに該当するヘッダー ファイルは、「Outlook 2010: MAPI ヘッダー ファイル」でダウンロードできます。 開発者は、この同一の MAPI ヘッダー ファイルのセットを使用して、32 ビットと 64 ビットの両方の MAPI アプリケーションをビルドできます。

64 ビット MAPI アプリケーションと 64 ビット Outlook

64 ビット MAPI アプリケーションは、64 ビット Outlook と 64 ビット Windows がインストールされたコンピューターでサポートされます。 アプリケーション開発者に必要な特定の操作はありません。

64 ビット MAPI アプリケーションと 32 ビット Outlook

64 ビット MAPI アプリケーションは、32 ビット Outlook と 32 ビットまたは 64 ビット Windows がインストールされたコンピューター上での実行はサポートされません。 アプリケーション開発者は、アプリケーションが 32 ビット Outlook で動作するように、32 ビット アプリケーションとしてアプリケーションをリビルドする必要があります。 最新の MAPI ヘッダー ファイルを使用してください (このファイルは、「Outlook 2010: MAPI ヘッダー ファイル」でダウンロードできます)。 開発者は、この同一の MAPI ヘッダー ファイルのセットを使用して、32 ビットと 64 ビットの両方の MAPI アプリケーションをビルドできます。

例外: MAPISendMail

一般に、32 ビット MAPI アプリケーションは、前もって 64 ビット アプリケーションとしてリビルドすることなく 64 ビット プラットフォーム (64 ビット Windows 上の 64 ビット Outlook) で実行することはできません。また、64 ビット MAPI アプリケーションは、前もって 32 ビットアプリケーションとしてリビルドすることなく 32 ビット Outlook と 32 ビットまたは 64 ビット Windows がインストールされたコンピューターで実行することはできません。 図 1 は、これらのシナリオのどちらかが発生した場合に表示される警告ダイアログ ボックスを示しています。

図 1. ほとんどのクロスビット MAPI 呼び出しのエラー メッセージ。

ほとんどのクロスビット MAPI 呼び出しのエラー メッセージ

ただし、すべての簡易 MAPI および MAPI 要素間での 1 つの関数呼び出し MAPISendMail は、WOW64 (Windows-32-bit-on-Windows-64-bit) または WOW32 (Windows-64-bit-on-Windows-32-bit) のシナリオで正常に動作し、上記の警告が発生しません。 この WOW64 シナリオは、Windows 7 にのみ該当します。

図 2 は、64 ビット Windows 7 がインストールされたコンピューターで 32 ビット MAPI アプリケーションが MAPISendMail を呼び出す WOW64 シナリオを示しています。 このシナリオでは、MAPI ライブラリは 64 ビットの Fixmapi アプリケーションを起動するために COM を呼び出しています。 Fixmapi アプリケーションは、関数呼び出しを Windows MAPI スタブにルーティングする MAPI ライブラリに暗黙的にリンクしています。このスタブは、Outlook MAPI スタブに転送します。これにより、MAPISendMail 関数呼び出しが成功するようになります。

図 2. WOW64 シナリオでの MAPISendMail の処理。

WOW64 シナリオでの MAPISendMail の処理 WOW64

関連項目