次の方法で共有


プラットフォームがモバイルとデスクトップのどちらであるかの確認

TMM はモバイル コンピューターでのみ実行され、デスクトップ コンピューターでは自動的に無効になります。 ハードウェア ベンダーは、独自の方法を有効にして使用し、デスクトップ コンピューターではクローン ビューに入る必要があります。 モバイル コンピューターでは、独自の方法を使用してクローン ビューに入らずに TMM を使用するように、プラットフォームがモバイルかどうかを判別する必要があります。

ハードウェア ベンダーは、次のコードを使用して、プラットフォームがモバイルかデスクトップかを判別できます。 その後で、プラットフォームは適切なメカニズムを使用してクローン ビューに入ることができます。

#include <Powrprof.h>   // For GetPwrCapabilities

    BOOL IsMobilePlatform()
    {
        BOOL fIsMobilePlatform = FALSE;

        fIsMobilePlatform = (PlatformRoleMobile == PowerDeterminePlatformRole());

        POWER_PLATFORM_ROLE iRole;

        // Check if the operating system determines 
        // that the computer is a mobile computer.
        iRole = PowerDeterminePlatformRole();

        if (PlatformRoleMobile == iRole)
        {
            fIsMobilePlatform = TRUE;
        }
        else if (PlatformRoleDesktop == iRole) 
        // Can happen when a battery is not plugged into a laptop
        {
            SYSTEM_POWER_CAPABILITIES powerCapabilities;

            if (GetPwrCapabilities(&powerCapabilities))
            {
         // Check if a battery exists, and it is not for a UPS.
         // Note that SystemBatteriesPresent is set on a laptop even if the battery is unplugged.
                fIsMobilePlatform = ((TRUE == powerCapabilities.SystemBatteriesPresent) && (FALSE == powerCapabilities.BatteriesAreShortTerm));
            }
            // GetPwrCapabilities should never fail 
            // However, if it does, leave fReturn == FALSE.
        }

        return fIsMobilePlatform;
    }

前述のコードで呼び出される関数の詳細については、Microsoft Windows SDK のドキュメントを参照してください。