高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

Technote 1160

What's New With ColorSync 2.6


目次

システム要件

ColorSync 2.6 の確認

ColorSync 2.6 のバージョン情報

ColorSync 2.6 の新しい API

Windows 版 ColorSync 2.6 の新しい API

Macintosh 版 ColorSync 2.6 の互換性について
Windows 版 ColorSync 2.6 の互換性について

参考文献

ColorSync 2.6 はアップルコンピュータのカラーマネージメントシステムの最新バージョンです。Mac OS 版、Windows 95/98 版、Windows NT 4.0 版など各プラットフォームに対応した製品があります。このテクニカルノートでは ColorSync の新バージョンでの変更点を詳しく説明します。ColorSync の API を使用しているデベロッパの方々を対象にしています。


システム要件

Macintosh 版 ColorSync 2.6 は、Mac OS 8.1 以上が動作する PowerPC マシンが必要です。Windows 版 ColorSync 2.6 は、Windows 95/98 か Windows NT 4.0 の動作する IBM 互換 PC が必要です。


Back to top

ColorSync 2.6 の確認

Macintoshの場合

ColorSync Manager の共有ライブラリが PowerPC マシンにロードされているかどうかを調べるには、gestaltColorMatchingAttr セレクタで Gestalt 関数を使用します。返されたパラメータの gestaltColorMatchingLibLoaded 定数が示すビットフィールド (ビット 1) を調べてください。ビットが設定されていたら、ColorSync Manager の共有ライブラリはロードされています。以下のコード (断片) がこの作業を行う方法です。このコードではブール変数の ColorSyncAvailable を最初に「false」に設定します。

Boolean CheckIfColorSyncAvailableOnPPC (void)
{
     Boolean ColorSyncAvailable = false;
     long gestaltResponse;
         
         if (Gestalt(gestaltColorMatchingAttr, &gestaltResponse) == noErr)
         {
              ColorSyncAvailable =
                   gestaltResponse & (1 << gestaltColorMatchingLibLoaded);
         }
       
         return ColorSyncAvailable;
}
         

Windows 95/98, Windows NT 4.0 の場合

Windows 95/98 および Windows NT で ColorSync がインストールされているかどうかを調べるには、ColorSync 2.6 の新しい関数 CMGetColorSyncVersion を使用します (詳細については後述の「ColorSync 2.6 の新しい API」を参照)。この関数を Windows システムで使用すると、ColorSync は ColorSync 関連 DLL 群のロードを試みます。ColorSync DLL がロードできないと、ColorSync が存在しない旨のエラーコードが返されます。

CMGetColorSyncVersion は ColorSync のバージョン情報も返します。以下のコード (一部) は、Windows に ColorSync のバージョン 2.6 がインストールされていることを調べるものです。


#define  kColorSync26  0x00000260
         
CMError err;
UInt32 version;
         
err = CMGetColorSyncVersion(&version);
if (err == noErr)
{
    if (version >= kColorSync26)
    {
       /* ColorSync 2.6 かそれ以上がインストールされている */
    }
}
else
{
    /* ColorSync は存在しない */
}

Back to top


ColorSync 2.6 のバージョン情報の取得

Windows の場合

ColorSync 2.6 の確認」で示したように、Windows 95/98 と Windows NT 4.0 の動作するマシンで ColorSync のバージョン情報を調べるには、ColorSync 2.6 の新しい関数 CMGetColorSyncVersion を使用してください。

Macintosh の場合

ColorSync 2.6 の確認 - Windows の場合」で示したのと同様、Macintosh でも ColorSync のバージョン情報を調べるには、ColorSync 2.6 の新しい関数 CMGetColorSyncVersion を使ってください。


重要な注意事項:

ColorSync 2.6 がインストールされた Macintosh システムでは、CMGetColorSyncVersion は version フィールドに 0x00026000 の値を返します。しかし、ColorSync 2.6 がインストールされた Windows システムでは、同じ CMGetColorSyncVersion 関数が 0x00000260 の値を返します。Gestalt が返す値も後者と同じです。この問題は Macintosh の ColorSync 2.6 の将来のバージョンでは解決される予定で、Gestalt と一致する値を返すようになります。

これとは別に、Macintosh では、gestaltColorMatchingVersion セレクタで Gestalt 関数を使って、ColorSync のバージョン情報を取得する方法もあります。

以下のサンプルコードで ColorSync Manager のバージョン 2.6 の存在をテストすることができます。自由に変更を加えて使ってください。この関数はブール変数の ColorSyncAvailable をまず「false」で初期化し、ColorSync Manager のバージョン 2.6 以上がインストールされていれば、「true」に設定します。


#define  kColorSync26  0x00000260
         
Boolean CheckForColorSyncMacVersion26(void)
{
    Boolean ColorSyncAvailable = false;
    long version;
         
        if (Gestalt(gestaltColorMatchingVersion, &version) == noErr)
        { 
            if (version >= kColorSync26)
            {
                ColorSyncAvailable = true;
            }
        }
         
    return ColorSyncAvailable;
}

Back to top

ColorSync 2.6 の新しい API

ColorSync 2.6 に追加された新しい API は以下の通りです。

CMError CMGetProfileDescriptions (CMProfileRef          prof,
                                  char                 *aName,
                                  UInt32               *aCount,
                                  Str255                mName,
                                  ScriptCode           *mCode,
                                  UniChar              *uName,
                                  UniCharCount         *uCount);
                  

フィールドの説明

prof

'desc' タグ情報を取得するためのプロファイルへの参照。

aName

プロファイル名を 7 ビットローマン ASCII 文字列として受け取るためのフィールドへのポインタ。

aCount

上の aName フィールドに返される文字列の文字数を受け取るためのフィールドへのポインタ。

mName

プロファイル名を Macintosh スクリプトコード形式のローカライズ済みの文字列として受け取るためのフィールドへのポインタ。

mCode

上の mName パラメータに返される名前文字列に対応するスクリプトコードを受け取るためのフィールドへのポインタ。

uName

プロファイル名を Unicode のローカライズ済み文字列として受け取るためのフィールドへのポインタ。

uCount

上の uName フィールドに返される Unicode (2 バイト) の文字数を受け取るためのフィールドへのポインタ。


CMError CMSetProfileDescriptions (CMProfileRef           prof,
                                  const char            *aName,
                                  UInt32                 aCount,
                                  ConstStr255Param       mName,
                                  ScriptCode             mCode,
                                  const UniChar         *uName,
                                  UniCharCount           uCount);
                  

フィールドの説明

prof

'desc' タグ情報を設定したいプロファイルへの参照。

aName

プロファイルに設定したい 7 ビットローマン ASCII 文字列のプロファイル名が入ったフィールドへのポインタ。この文字列は null で終了しなければならない。

aCount

上の aName フィールドに入っている文字数。

mName

プロファイルに設定したい Macintosh スクリプトコード形式のローカライズ済み文字列のプロファイル名が入ったフィールドへのポインタ。

mCode

上の mName パラメータの名前文字列に対応するスクリプトコード。

uName

プロファイルに設定したい Unicode のローカライズ済み文字列のプロファイル名が入ったフィールドへのポインタ。

uCount

上の uName フィールドに入っている Unicode の文字数 (バイト数と混同しないでください。Unicode は 1 文字 2 バイトです)。


説明

この2つの関数はプロファイルの記述タグデータの取得 / 設定に使います。ICC のプロファイルフォーマット仕様書 (<http://www.color.org> を参照) には記述タグ (description、'desc') が定義されています。プロファイルのファイル名では足りない情報を表現するためのものです。特に 8.3 形式のファイルシステムで重要になります。プロファイルのタグデータは最大 3 つの別個の情報項目 (文字列) から構成されます。異なる言語、異なるコンピュータシステムで文字列を選んで表示できるよう設計されています。アプリケーションは通常この文字列の 1 つを使って、リストボックスやポップアップメニューにプロファイル一覧を表示します。ColorSync 2.6 にはこうした情報にアクセスするための新しい API が含まれており、ICC の仕様に基づいて 'desc' タグの有効性をチェックすることもできます。


CMError NCWConcatColorWorld (CMWorldRef             *cw,
                             NCMConcatProfileSet    *profileSet,
                             CMConcatCallBackUPP     proc,
                             void                   *refCon);
         

フィールドの説明

cw

関数が正常に終了した場合に ColorSync Manager が返す、カラーワールドへの参照。この参照は、カラーマッチングセッションやカラーチェックセッションで、カラーワールドを使用する他の関数に渡します。

profileSet

実行したい処理を記述するプロファイルの配列。配列は元データから結果データへ至る処理の順序になります。

proc

呼び出し側のプログラムが提供するコールバック関数。この関数を使うと、アプリケーションから進行状態を監視したり、処理を中断することができます。

refCon

呼び出し側のアプリケーションプログラムが指定したデータを含む参照用定数。


New structures for use with this function:

struct NCMConcatProfileSet {
   OSType          cmm;              /* 'KCMS' など。CMM を特定する ID または 0000 */
   unsigned long   flags;            /* 品質の指定 */
   unsigned long   flagsMask;        /* プロファイルより優先させるフラグのビットを指定 */
   unsigned long   profileCount;     /* 以下の profileSpecs 中のプロファイル数 */
   NCWConcatProfileSpec   profileSpecs[]; /* 下記に定義された新しい構造体 */
};
         
struct NCWConcatProfileSpec {
   unsigned long   renderingIntent;  /* transformTag で使用するインテント */
   unsigned long   transformTag;     /* 下記に定義されたタグ識別子のひとつ */
   CMProfileRef    profile;          /* トランスフォームを取り出すプロファイル */
};
         
enum {
  kNoTransform    = 0,               /* 未使用 */
  kUseAtoB        = 1,               /* このプロファイルの 'A2B*' または同様のものを使用 */
  kUseBtoA        = 2,               /* このプロファイルの 'B2A*' または同様のものを使用 */
  kUseBtoB        = 3,               /* このプロファイルの 'pre*' または同様のものを使用 */
         
      /* 典型的なデバイスプロファイルの場合は下記の同義語が便利 */
         
  kDeviceToPCS    = kUseAtoB,        /* デバイス依存からデバイス独立へ */
  kPCSToDevice    = kUseBtoA,        /* デバイス独立からデバイス依存へ */
  kPCSToPCS       = kUseBtoB,        /* デバイスガミュに渡り独立 */
         
/* NCMConcatProfileSpec でレンダリングインテントを指定する際のデフォルト動作 */
         
  kUseProfileIntent       = (long)0xFFFFFFFF
                                     /* NCMConcatProfileSpec の renderingIntent */
};
         
/*
  NCMMConcatInit と NCMMNewLinkProfile の進行状態を監視する呼び出し側の関数
*/
         
typedef STACK_UPP_TYPE(CMConcatCallBackProcPtr)  CMConcatCallBackUPP;
typedef CALLBACK_API( Boolean, CMConcatCallBackProcPtr )
                    (long progress, void *refCon);
         
/*
  コールバック関数の作成例:
*/
         
CMConcatCallBackUPP myCallBackUpp = NewCMConcatCallBackProc(myCallBackProc);
         

説明

NCWConcatColorWorld 関数は、連結した一連のプロファイル間で行われる色変換のためのカラーワールドを定義します。呼び出し側は、NCMConcatProfileSet 構造体に CMM 識別子を指定することで、ColorSync が通常選択する CMM を置き換えることができます。0 を渡して ColorSync が選択する CMM を受け入れることもできます (ユーザが選択した CMM またはプロファイルが要求した CMM になります)。flags と flagsMask パラメータを使うと、他の属性はそのままに、品質やガミュチェックなど一部の属性だけを簡単にカスタマイズできます。プロファイル群中の個別のプロファイルは、そのインテントの置き換え、変換タグの選択によりカスタマイズできます。他のプロファイルとともに、ガミュ圧縮や接続スペースとの不要な変換を最小にするような、デバイス依存スペースとの変換を可能にするカスタムレンダリング環境が設定できます。ただし、こうした柔軟性を実現するには、プロファイルの具体的内容とデバイスガミュの重なり具合についての知識がなければなりません。

標準入出力デバイスプロファイルの場合、A2B タグと B2A タグはそれぞれ、データスペースから接続スペースへの変換、接続スペースからデータスペースへの変換を表します。このような状況では、呼び出し側は同じ変換タグ (kUseAtoB) を連続して使用することはできません。接続スペースは後続のデータスペースと同じではない場合があるからです。スペースが違うと、cmCantConcatenateError エラー (-178) が返されます。タイプが cmLinkClass、cmAbstractClass、cmColorSpaceClass、cmNamedColorClass のプロファイルでは、こうした定数が常に意味を持つわけではなく、呼び出し側はプロファイル中に存在する実際のタグ (例えば、A2B0 や B2A0) に基づいて作業を行ってください。このような状況では、タグ間で実際のカラースペースが揃っているのであれば、同種の変換タグを 2 つ連続して指定するとよいでしょう。カラースペースが揃っていない場合には、cmCantConcatenateError エラー (-178) が返されます。

長時間のカラーワールド処理中にマシンがハングしたように見えるのを防ぐために、コールバックプロシージャを用意します。CMM が情報の処理やカラーワールドの作成で数秒以上かかる場合、コールバックプロシージャが提供されていれば、それが呼び出されます。そのとき、与えられた refCon も渡されます。これは次に説明する NCWNewLinkProfile にも該当します。

CMError NCWNewLinkProfile (CMProfileRef              *prof,
                           const CMProfileLocation   *targetLocation,
                           NCMConcatProfileSet       *profileSet,
                           CMConcatCallBackUPP        proc,
                           void                      *refCon);

フィールドの説明

prof

返されたプロファイルへの参照。

targetLocation

CMProfileLocation データ型で指定するプロファイルの場所。プロファイルは通常ディスクファイルにあるものとされますが、ファイルのほか、ハンドルベース、ポインタベースのプロファイルでもかまいません。

profileSet

プロファイル群を指定する構造体。

proc

呼び出し側のプログラムが提供するコールバック関数。この関数を使うと、アプリケーションから進行状態を監視したり、処理を中断することができます。

refCon

呼び出し側のアプリケーションプログラムが指定したデータを含む参照用定数。


説明

カラーワールド作成と同様、プロファイルリンクの作成も柔軟にできるようになりました。プロファイルは入力デバイスのカラースペースから、出力デバイスのカラースペースに行くものと考える必要がなくなりました。返されるプロファイルは開かれた状態なので、使い終わったら閉じてください。


CMError

NCMSetSystemProfile (const CMProfileLocation *profLoc);


フィールドの説明

profLoc

CMProfileLocation データ型で指定するプロファイルの場所。プロファイルは通常ディスクファイルにあるものとされますが、ファイルのほか、ハンドルベース、ポインタベースのプロファイルでもかまいません。


説明

ColorSync 2.6 より前のバージョンは、システムプロファイルを設定する API は、プロファイルを指定する方法として FSSpec ファイル指定型しかサポートしていませんでした。この新しい API は、Windows のファイルシステム指定も同様にできるよう設計されたものです。


CMError NCMUnflattenProfile (CMProfileLocation *targetLocation,
                             CMFlattenUPP       proc,
                             void              *refCon,
                             Boolean           *preferredCMMnotfound);
                  

フィールドの説明

targetLocation

CMProfileLocation データ型で指定する非平坦化 (unflatten) したいプロファイルの場所。プロファイルは通常ディスクファイルにあるものとされますが、ファイルのほか、ハンドルベース、ポインタベースのプロファイルでもかまいません。

proc

非平坦化処理中に呼び出されるユーザ定義プロシージャ。

refCon

呼び出し側のアプリケーションプログラムが指定したデータを含む参照用定数。

preferredCMMnotfound

プロファイルで指定された CMM が見つかったかどうかを示す返り値。


説明

プロファイルの非平坦化(unflatten)にはこの関数を使ってください。


CMError CMIterateCMMInfo (CMMIterateUPP          proc,
                          UInt32                *count,
                          void                  *refCon);
                  

フィールドの説明

proc

呼び出し側のプログラムが提供するコールバック関数。この関数を使うと、アプリケーションから進行状態を監視したり、処理を中断することができます。

count

参照された CMM の個数がこのフィールドに返されます。

refCon

呼び出し側のアプリケーションプログラムが指定したデータを含む参照用定数。


この関数で使用する新しい構造体

OSErr CMMIterateUPP(
 CMMInfo*  iterateData,       /* 特定 CMM の情報を含む構造体へのポインタ */
 void*     refcon             /* CMIterateCMMInfo API で渡される呼び出し側定義のデータ */
);
                  
struct CMMInfo  {
  unsigned long   dataSize;          /* この構造体の大きさ - 互換性のため */
  OSType          CMMType;           /* CMM のシグネチャ */
  OSType          CMMMfr;            /* ベンダー、例えば 'appl' */
  unsigned long   CMMVersion;        /* バージョン番号 */
  Handle          CMMIcons;          /* サイズや深さの異なるものを複数指定可能 */
  unsigned char   ASCIIName[32];     /* Pascal 文字列 - 名前 */
  unsigned char   ASCIIDesc[256];    /* Pascal 文字列 - 説明または著作権表示 */
  UniCharCount    UniCodeNameCount;  /* 以下の配列の UniChars の個数 */
  UniChar         UniCodeName[32];   /* UniCode 文字列の名前 */
  UniCharCount    UniCodeDescCount;  /* 以下の配列の UniChars の個数 */
  UniChar         UniCodeDesc[256];  /* UniCode 文字列の説明 */
};

説明

CMIterateCMMInfo 関数はシステムにインストールされているすべての CMM についての情報を返します。呼び出し側は CMMIterateUPP パラメータに nil を渡して、CMM の個数だけを調べることもできます。CMMIterateUPP プロシージャを渡すと、インストールされている CMM ごとに一回ずつ呼び出され、CMMInfo 構造体に該当の CMM の情報が埋められます。呼び出し側は CMIterateCMMInfo に参照用データを渡しておくと、それが CMMIterateUPP に渡されてきます。たとえば refcon としてメニュー参照を渡せば、CMMInfo データ構造体の情報の一部をメニューに追加できます。proc と count のどちらか 1 つのパラメータは指定しなければなりません。両方が nil だと、呼び出し側に paramErr が返されます。


CMError

CMGetColorSyncVersion (UInt32 *version);


フィールドの説明

version

version マシンにインストールされた ColorSync のバージョンがこのフィールドに返されます。


説明

ColorSync のバージョン情報を返します。CMGetColorSyncVersion のおかげで Mac OS のデベロッパは、システムにインストールされた ColorSync のバージョンを調べるのに、Gestalt を呼び出す必要がなくなりました。他のプラットフォームではこのような API がないため、ColorSync 2.6 では、プラットフォームに依存しないバージョン情報取得方法を導入しました。


重要な注意事項:

Macintosh 版 ColorSync 2.6 のこの関数の返り値は 0x00026000 です。これは現在 Gestalt が返す値 (0x00000260) と一致しません。Macintosh 版 ColorSync の将来のバージョンではこれを修正し、Gestalt の返り値と一致するようにする予定です。


Back to top


非推奨 API
以下の API は将来サポートが中止されるか、限定的にしか使用できなくなります。

API

ColorSyncバージョン

Windowsサポート

Macintoshサポート

非推奨とされる理由

(CM)BeginMatching

1.x

No

No

Pict ベース。1.x のプロファイルを使用

NCMBeginMatching

2.x

No

Yes

Pict ベース。2.x のプロファイルを使用

(CM)EndMatching

1.x

No

Yes

Pict ベース

(CM)EnableMatching(Comment)

1.x

No

Yes

Pict ベース

(CM)UseProfile(Comment)

1.x

No

No

Pict ベース。1.x のプロファイルを使用

NCMUseProfileComment

2.x

No

Yes

Pict ベース。2.x のプロファイルを使用

(CM)DrawMatchedPicture

1.x

No

No

Pict ベース。1.x のプロファイルを使用

NCMDrawMatchedPicture

2.x

No

Yes

Pict ベース。2.x のプロファイルを使用

(CM)GetProfileName

1.x

No

No

1.x のプロファイルを使用

(CM)GetProfileAdditionalDataOffset

1.x

No

No

1.x のプロファイルを使用

(CM)GetProfile

1.x

No

No

プロファイルレスポンダ関数

(CM)SetProfile

1.x

No

No

プロファイルレスポンダ関数

(CM)SetProfileDescription

1.x

No

No

プロファイルレスポンダ関数

(CM)GetIndexedProfile

1.x

No

No

プロファイルレスポンダ関数

(CM)DeleteDeviceProfile

1.x

No

No

プロファイルレスポンダ関数

ConcatenateProfiles

1.x

No

No

1.x のプロファイルを使用

CWNewColorWorld

1.x

No

No

1.x のプロファイルを使用

(CM)GetColorSyncFolderSpec

1.x, 2.x

No

Yes

Macintosh 固有のディレクトリ情報

CMSearchGetIndProfileFileSpec

2.x

No

Yes

Macintosh 固有のファイルデータ型: FSSpec

CMSetSystemProfile

2.x

No

Yes

Macintosh 固有のファイルデータ型: FSSpec

CMUnflattenProfile

2.x

No

Yes

Macintosh 固有のファイルデータ型: FSSpec

CMGetProfileByAVID

2.5

No

Yes

Macintosh 固有の Display Manager: AVID

CMSetProfileByAVI

2.5

No

Yes

Macintosh 固有の Display Manager: AVID

CWMatchPixMap

1.x, 2.x

QT?

Yes

Macintosh 固有のデータ: PixMap

- Windows に QTML がインストールされている場合にサポート

CWCheckPixMap

1.x, 2.x

QT?

Yes

Macintosh 固有のデータ: PixMap

- Windows に QTML がインストールされている場合にサポート

CMAccelerationLoadTables

2.x

No

No

CMM 関数 - プラットフォーム依存のアクセラレーション

CMAccelerationCalculateData

2.x

No

No

CMM 関数 - プラットフォーム依存のアクセラレーション

Back to top


Windows 版 ColorSync 2.6 の新しい API



CMError CWMatchHBITMAP (CMWorldRef             cw,
                        HBITMAP                hBitmap,
                        CMBitmapCallBackUPP    progressProc,
                        void                  *refCon);
                  

フィールドの説明

cw

マッチングを行うカラーワールドへの参照。

hBitmap

マッチングしたいビットマップのハンドル。これは Windows Win32 の標準 HBITMAP 構造体です。

progressProc

呼び出し側のプログラムが提供するコールバック関数。この関数を使うと、ビットマップのカラーマッチングしている間に、アプリケーションから進行状態を監視したり、処理を中断することができます。

refCon

呼び出し側のアプリケーションプログラムが指定したデータを含む参照用定数。


説明

CWMatchHBITMAP は、Mac OS の CWMatchPixMap と同様、プラットフォーム固有データのマッチングを行います。


CMError CMGetColorSyncFolderPath (Boolean        createFolder,
                                  char          *lpBuffer,
                                  UInt32         uSize);
                  

フィールドの説明

createFolder

ColorSync プロファイルのディレクトリが見つからない場合に、新しいディレクトリを作成するかどうかを指定するブール値。

lpBuffer

olorSync フォルダのパスを返してもらいたいバッファへのポインタ。

uSize

そのバッファのサイズ。


説明

ColorSync 2.6 は、システムフォルダの直下の「ColorSync Profiles」フォルダにインストール済みの全プロファイルを格納するようになりました。Mac OS の CMGetColorSyncFolderSpec 関数と同様、Windows デベロッパは CMGetColorSyncFolderPath でこのフォルダの場所を調べることができます。「ColorSync Profiles」ディレクトリが存在しない場合にフォルダを作成するかどうかは、引数 createFolder の値によって決まります。


新しい CMM API

以下の API は、ColorSync が呼び出す CMM のエントリポイントです。NCWConcatColorWorld 関数が返す新しいカラーワールドや、NCWNewLinkProfile 関数が返す新しいリンクプロファイルの作成を処理するために呼び出されます。CMM デベロッパ以外はこれらの API を知る必要はありません。



CMError NCMMConcatInit (CMMStorageHdl              hStorage,
                        NCMConcatProfileSet       *profileSet,
                        CMConcatCallBackUPP        proc,
                        void                      *refCon);
                  

フィールドの説明


hStorage

CMM のプライベートインスタンスの保存場所。

profileSet

カラーワールド作成のため連結するプロファイル群。

proc

コールバックプロシージャ。

refCon

コールバックプロシージャに渡されるユーザデータ。


説明

これは、アプリケーションが NCWConcatColorWorld 関数を呼び出したときに ColorSync が呼び出す API です。この関数の新しいセレクタは kNCMMConcatInit です。CMM の仕事は、プロファイル群に指定された各プロファイルの検証と、それらのプロファイルを使って再編成することです。CMM がそのようなトランスフォームを構築できない場合は、cmCantConcatenateErr エラーか、その他の適切なエラーコードを返さなければなりません。


CMError NCMMNewLinkProfile (CMMStorageHdl        hStorage,
                            CMProfileRef         prof,
                            NCMConcatProfileSet *profileSet,
                            CMConcatCallBackUPP  proc,
                            void                *refCon);
                  

フィールドの説明

hStorage

CMM のプライベートインスタンスの保存場所。

prof

CMM はこのプロファイルに適切なタグを追加します。

profileSet

リンクプロファイル作成のため連結するプロファイル群。

proc

コールバックプロシージャ。

refCon

コールバックプロシージャに渡されるユーザデータ。


説明

これは、アプリケーションが NCWNewLinkProfile 関数を呼んだときに ColorSync が呼び出す API です。この関数の新しいセレクタは kNCMMNewLinkProfile です。CMM の仕事は、プロファイル群に指定された各プロファイルの検証と、それらのプロファイルを使ってリンクプロファイルを構築することです。CMM がリンクプロファイルを構築できない場合は、cmCantConcatenateErr エラーか、その他の適切なエラーコードを返さなければなりません。ColorSync は CMM を呼び出す前に (CMNewProfile で) プロファイルを作成してくれるため、CMM は戻る前に単にプロファイルに適切なタグを追加するだけで済みます。ColorSync は、呼び出し元にプロファイルを返す前に、CMUpdateProfile でプロファイルにタグを書き込んでくれます。

Back to top

ColorSync スクリプティングライブラリの新しい API

ColorSync 2.6 では、新しいスクリプティングライブラリ API 群が追加されました。これは、新しい ColorSync 2.6 の AppleEvent 用語説明で提供されるのと同じファイル形式ユーティリティをアプリケーションからも利用できるようしたものです。AppleEvent に応答する ColorSync のコードも実はこの同じライブラリを呼び出します。新しいスクリプティングライブラリで導入された関数は、以下の通りです。

CMError CMValidImage (const FSSpec *spec);

フィールドの説明

spec

検証したいイメージファイルのファイル指定。


説明

この関数は指定されたイメージファイルを検証します。ColorSync は、インストール済みのスクリプティングプラグインでそのイメージのファイル形式を認識できるものがあるかどうか調べます。そのイメージのファイル形式を認識できるスクリプティングプラグインが見つかれば、CMValidateImage は noErr を返します。見つからなければ cmInvalidImageFile を返します。


CMError CMGetImageSpace (const FSSpec *spec,
                               OSType *space);
                  

フィールドの説明

spec

イメージファイルのファイル指定。

space

イメージファイルで使われている色の値のデータカラースペースのシグネチャが返されます。


説明

この関数は、イメージの色の値が表現されているデータカラースペースのシグネチャを返します。


CMError CMEmbedImage (const FSSpec *specFrom,
                      const FSSpec *specInto,
                      Boolean       repl,
                      CMProfileRef  embProf);
                  

フィールドの説明

specFrom

イメージファイルのファイル指定。

specInto

このパラメータがファイルの場合は、生成されるイメージを指定します。このパラメータがフォルダの場合は、生成されるイメージを置く場所を指定し、イメージは元のファイルと同じ名前になります。このパラメータを省略すると元のファイルが変更されます。

repl

同名のファイルがすでに存在し、このパラメータが「true」に設定されていると、ファイルは置き換えられます。

embProf

イメージに埋め込みたいプロファイル。


説明

この関数は ICC プロファイルとともにイメージを埋め込みます。


CMError CMUnembedImage (const FSSpec *specFrom,
                        const FSSpec *specInto,
                        Boolean       repl);
                  

フィールドの説明

specFrom

イメージファイルのファイル指定。

specInto

このパラメータがファイルの場合は、生成されるイメージを指定します。このパラメータがフォルダの場合は、生成されるイメージを置く場所を指定し、イメージは元のファイルと同じ名前になります。このパラメータを省略すると元のファイルが変更されます。

repl

同名のファイルがすでに存在し、このパラメータが「true」に設定されていると、ファイルは置き換えられます。


説明

この関数はイメージに埋め込まれている ICC プロファイルをすべて取り除きます。


CMError CMMatchImage (const FSSpec *specFrom,
                      const FSSpec *specInto,
                      Boolean       repl,
                      UInt32        qual,
                      CMProfileRef  srcProf,
                      UInt32        srcIntent,
                      CMProfileRef  dstProf);
                  

フィールドの説明

specFrom

イメージファイルのファイル指定。

specInto

このパラメータがファイルの場合は、生成されるイメージを指定します。このパラメータがフォルダの場合は、生成されるイメージを置く場所を指定し、イメージは元のファイルと同じ名前になります。このパラメータを省略すると元のファイルが変更されます。

repl

同名のファイルがすでに存在する場合、このパラメータが「true」に設定されているとファイルが置き換えられます。

qual

マッチングの品質 (省略可能)。選択肢は、通常品質 (cmNormalMode)、ドラフト (cmDraftMode)、高品質 (cmBestMode) があります。

srcProf

マッチングのための元プロファイル (省略可能)。

srcIntent

マッチングのためのレンダリングインテント。選択肢は、パーセプチュアルインテント (cmPerceptual)、相対カラメトリックインテント (cmRelativecolorimetric)、彩度インテント (cmSaturation)、絶対カラメトリックインテント (cmAbsoluteColorimetric) です。

dstProf

マッチングのための対象プロファイル。


説明

イメージファイルのカラーマッチングを行うにはこの関数を使ってください。


CMError CMProofImage (const FSSpec *specFrom,
                      const FSSpec *specInto,
                      Boolean       repl,
                      UInt32        qual,
                      CMProfileRef  srcProf,
                      UInt32        srcIntent,
                      CMProfileRef  dstProf,
                      CMProfileRef  prfProf);
                  

フィールドの説明

specFrom

イメージファイルのファイル指定。

specInto

このパラメータがファイルの場合は、生成されるイメージを指定します。このパラメータがフォルダの場合は、生成されるイメージを置く場所を指定し、イメージは元のファイルと同じ名前になります。このパラメータを省略すると元のファイルが変更されます。

repl

同名のファイルがすでに存在し、このパラメータが「true」に設定されていると、ファイルは置き換えられます。

qual

マッチングの品質 (省略可能)。選択肢は、通常品質 (cmNormalMode)、ドラフト (cmDraftMode)、高品質 (cmBestMode) があります。

srcProf

マッチングのための元プロファイル (省略可能)。

srcIntent

元プロファイルと対象プロファイル間のマッチングのためのレンダリングインテント。選択肢は、パーセプチュアルインテント (cmPerceptual)、相対カラメトリックインテント (cmRelativecolorimetric)、彩度インテント (cmSaturation)、絶対カラメトリックインテント (cmAbsoluteColorimetric) です。

dstProf

マッチングのための対象プロファイル。

prfProf

対象プロファイルと元プロファイルとのマッチングのための校正プロファイル。


説明

イメージファイルの校正を行うにはこの関数を使ってください。

CMError CMLinkImage (const FSSpec *specFrom,
                     const FSSpec *specInto,
                     Boolean       repl,
                     UInt32        qual,
                     CMProfileRef  lnkProf,
                     UInt32        lnkIntent);
                  

フィールドの説明

specFrom

イメージファイルのファイル指定。

specInto

このパラメータがファイルの場合は、生成されるイメージを指定します。このパラメータがフォルダの場合は、生成されるイメージを置く場所を指定し、イメージは元のファイルと同じ名前になります。このパラメータを省略すると元のファイルが変更されます。

repl

同名のファイルがすでに存在し、このパラメータが「true」に設定されていると、ファイルは置き換えられます。

qual

マッチングの品質 (省略可能)。選択肢は、通常品質 (cmNormalMode)、ドラフト (cmDraftMode)、高品質 (cmBestMode) があります。

lnkProf

マッチングのためのデバイスリンクプロファイル。

lnkIntent

マッチングのためのレンダリングインテント。選択肢は、パーセプチュアルインテント (cmPerceptual)、相対カラメトリックインテント (cmRelativecolorimetric)、彩度インテント (cmSaturation)、絶対カラメトリックインテント (cmAbsoluteColorimetric) です。


説明

イメージファイルとデバイスリンクプロファイルのマッチングを行うにはこの関数を使ってください。


CMError CMCountImageProfiles (const FSSpec *spec,
                              UInt32       *count);
                  

フィールドの説明

spec

イメージファイルのファイル指定。

count

イメージ内に埋め込まれたプロファイルの個数が返されます。


説明

指定のイメージに埋め込まれたプロファイルの個数を調べるにはこの関数を使ってください。


CMError CMGetIndImageProfile (const FSSpec *spec,
                              UInt32        index,
                              CMProfileRef *prof);
                  

フィールドの説明

spec

イメージファイルのファイル指定。

index

返してほしいプロファイルの数値インデックス。

prof

プロファイルはこのフィールドに返されます。


説明

指定のイメージに埋め込まれた指定のプロファイルを取得するにはこの関数を使ってください。


CMError CMSetIndImageProfile (const FSSpec *specFrom,
                              const FSSpec *specInto,
                              Boolean       repl,
                              UInt32        index,
                              CMProfileRef  prof);
                  

フィールドの説明

specFrom

イメージファイルのファイル指定。

specInto

このパラメータがファイルの場合は、生成されるイメージを指定します。このパラメータがフォルダの場合は、生成されるイメージを置く場所を指定し、イメージは元のファイルと同じ名前になります。このパラメータを省略すると元のファイルが変更されます。

repl

同名のファイルがすでに存在し、このパラメータが「true」に設定されていると、ファイルは置き換えられます。

index

設定したいプロファイルの数値インデックス。

prof

index パラメータで指定されたインデックス位置に設定するプロファイル。


説明

指定のイメージに指定のプロファイルを埋め込むにはこの関数を使ってください。


新しい CMBitmap タイプ

ColorSync 2.6 には新しい CMBitmap スペースが複数追加され (下記参照)、デベロッパは複数プラットフォームに適応した広範囲なデータ形式が利用できるようになりました。ColorSync 2.6 の Macintosh 版と Windows 版の両方が、これらのビットマップ形式をすべてサポートしています。

新しいスペース属性フラグ cmLittleEndianPacking を設定することで下位バイト先行 (リトルエンディアン) 形式のデータであることを指定できるようになったビットマップスペースもあります。また、新旧を問わずほどんどすべてのスペースに適用できる「リバースチャネル」属性、cmReverseChannelPacking も追加されました。


ColorSync 2.5 でサポートされていたビットマップスペース

  • cmGray16Space = cmGraySpace,
  • cmGrayA32Space = cmGrayASpace,
  • cmRGB16Space = cmWord5ColorPacking + cmRGBSpace,
  • cmRGB24Space = cm24_8ColorPacking + cmRGBSpace,
  • cmRGB32Space = cm32_8ColorPacking + cmRGBSpace,
  • cmRGB48Space = cm48_16ColorPacking + cmRGBSpace,
  • cmARGB32Space = cm32_8ColorPacking + cmAlphaFirstPacking + cmRGBASpace,
  • cmRGBA32Space = cm32_8ColorPacking + cmAlphaLastPacking + cmRGBASpace,
  • cmCMYK32Space = cm32_8ColorPacking + cmCMYKSpace,
  • cmCMYK64Space = cm64_16ColorPacking + cmCMYKSpace,
  • cmHSV32Space = cmLong10ColorPacking + cmHSVSpace,
  • cmHLS32Space = cmLong10ColorPacking + cmHLSSpace,
  • cmYXY32Space = cmLong10ColorPacking + cmYXYSpace,
  • cmXYZ32Space = cmLong10ColorPacking + cmXYZSpace,
  • cmLUV32Space = cmLong10ColorPacking + cmLUVSpace,
  • cmLAB24Space = cm24_8ColorPacking + cmLABSpace,
  • cmLAB32Space = cmLong10ColorPacking + cmLABSpace,
  • cmLAB48Space = cm48_16ColorPacking + cmLABSpace,
  • cmGamutResult1Space = cmOneBitDirectPacking + cmGamutResultSpace,
  • cmNamedIndexed32Space = cm32_32ColorPacking + cmNamedIndexedSpace,
  • cmMCFive8Space = cm40_8ColorPacking + cmMCFiveSpace,
  • cmMCSix8Space = cm48_8ColorPacking + cmMCSixSpace,
  • cmMCSeven8Space = cm56_8ColorPacking + cmMCSevenSpace,
  • cmMCEight8Space = cm64_8ColorPacking + cmMCEightSpace


ColorSync 2.6 で新しく追加されたスペース

  • cmGray8Space = cmGraySpace + cm8_8ColorPacking、8 ビットグレイスケール
  • cmGrayA16Space = cmGrayASpace + cm16_8ColorPacking、8 ビットグレイスケール + 8 ビットアルファ
  • cmGray16LSpace = cmGraySpace + cmLittleEndianPacking、16 ビットグレイスケール、リトルエンディアン
  • cmGrayA32LSpace = cmGrayASpace + cmLittleEndianPacking、16 ビットグレイスケール + 16 ビットアルファ、リトルエンディアン
  • cmRGB565Space = cmRGBSpace + cmWord565ColorPacking、1.5.5.5 の変形
  • cmRGB565LSpace = cmRGBSpace + cmWord565ColorPacking + cmLittleEndianPacking、1.5.5.5 の変形、リトルエンディアン
  • cmRGB16LSpace = cmRGBSpace + cmWord5ColorPacking + cmLittleEndianPacking、1.5.5.5、リトルエンディアン
  • cmRGB48LSpace = cmRGBSpace + cm48_16ColorPacking + cmLittleEndianPacking、チャネルあたり 16 ビットの RGB、リトルエンディアン
  • cmARGB64Space = cmRGBASpace + cm64_16ColorPacking + cmAlphaFirstPacking、16 ビット RGB
  • cmARGB64LSpace = cmRGBASpace + cm64_16ColorPacking + cmAlphaFirstPacking+ cmLittleEndianPacking、16 ビット RGB/アルファチャネル先行、リトルエンディアン
  • cmRGBA64Space = cmRGBASpace + cm64_16ColorPacking + cmAlphaLastPacking、16 ビット RGB/アルファ後続
  • cmRGBA64LSpace = cmRGBASpace + cm64_16ColorPacking + cmAlphaLastPacking+ cmLittleEndianPacking、16 ビット RGB/アルファ後続、リトルエンディアン
  • cmCMYK64LSpace = cmCMYKSpace + cm64_16ColorPacking + cmLittleEndianPacking、16 ビット CMYK、リトルエンディアン
  • cmXYZ24Space = cmXYZSpace + cm24_8ColorPacking、8 ビット XYZ
  • cmXYZ48Space = cmXYZSpace + cm48_16ColorPacking、16 ビット XYZ
  • cmXYZ48LSpace = cmXYZSpace + cm48_16ColorPacking + cmLittleEndianPacking、16 ビット XYZ、リトルエンディアン
  • cmLAB48LSpace = cmLABSpace + cm48_16ColorPacking + cmLittleEndianPacking、16 ビット Lab、リトルエンディアン
  • cmNamedIndexed32LSpace = cm32_32ColorPacking + cmNamedIndexedSpace+ cmLittleEndianPacking、32 ビットインデックス、リトルエンディアン


ICC プロファイルの記述 ('desc') タグの処理

ColorSync の最新リリース (バージョン 2.6) での重要な変更点の 1 つに、ICC プロファイルの記述 ('desc') タグの処理があります。

ICC の定義によれば、プロファイルの 'desc' タグは最大 3 つの文字列を含みます。最初の文字列は必須で、7 ビットのローマン ASCII 文字列です。2 つめは省略可能で、ローカライズ済みの Unicode 文字列です。3 つめも省略可能で、Macintosh スクリプトコード形式のローカライズ済み文字列です。アプリケーションは通常この文字列の 1 つを使って、リストボックスやポップアップメニューにプロファイル一覧を表示します。'desc' タグに関する ICC の定義には、他にも重要ですがややこしい細目があります。その 1 つは、これらの 3 つの文字列はすべて null で終了しなければならないことです。また、3 つの文字列すべての先頭には、終りの null を含めた文字数を置かなければなりません。Unicode 文字列の場合、各文字は 2 バイトなので、文字数をバイト数と混同しないように注意してください。

ColorSync の旧バージョンでは、このタグを部分的にしか利用しておらず、その結果、内容について限られたエラーチェックしか行っていませんでした。例えば、ColorSync 関数の CMGetScriptProfileDescription は、プロファイル中に Macintosh スクリプトコードがあればそれを返し、なければ 7 ビットローマン ASCII 文字列を返していました。Unicode 文字列は単に無視されるか、Unicode と Macintosh のスクリプトコード文字列のどちらか (または両方) が仕様に合わないと、cmProfileErr コードではなく、ごみ (運がいいときには ASCII 文字列) が返されていました。

ColorSync 2.6 は、ColorSync が Mac OS と Windows の両方で動作するようになった初めてのバージョンです。Macintosh スクリプトコード形式の文字列は Windows では使用できないため、ColorSync クライアントはローカライズ済みの Unicode 文字列を参照する必要があります。(Unicode 文字列は Macintosh でも徐々に使えるようになっています。) こうした理由から、新しい API の CMGetProfileDescriptions が追加され、3 つの使用可能な文字列のすべてにアクセスできるようになりました。しかし、そのためには 'desc' タグの仕様に厳密に準拠することが必要です。例えば、ASCII 文字列や Macintosh スクリプトコード文字列が null で終了していなかったり、文字列の文字数が間違っていたり、'desc' タグの範囲を越えていたりすると、cmProfileErr コードが返されます。

アプリケーションがリストボックスやポップアップメニューにプロファイルを追加する際のパフォーマンスを最大にするために、ColorSync は「ColorSync Profiles」フォルダとそのサブディレクトリにインストールされているすべてのプロファイルのキャッシュを保持します。このキャッシュファイルには、CMGetProfileDescriptions を呼び出して取得した各プロファイルの 3 つの名前が入っています。CMGetProfileDescriptions が、'desc' タグの不備のためにエラーを返すと、そのプロファイルはキャッシュに追加されません。そのプロファイルがたとえ「ColorSync Profiles」フォルダに正常にインストールされていても、ColorSync コントロールパネルや ColorSync プラグインのポップアップメニュー (ColorSync 2.6 がインストールされている場合) に表示されなくなるのはこのためです。

この問題の解決策は、原因となっているプロファイルを修正することです。残念ながら、ColorSync 2.6 の一部としてインストールされる「Rename Profile」AppleScript を使って、間違った 'desc' タグを持つプロファイルを直すことはできません。このスクリプトは ColorSync プロファイルキャッシュにあるほうのプロファイルを操作するからです。一方、「Profile First Aid」というシンプルなスタンダローンツールはどのようなプロファイルでも検査修復することができます。このツールは ColorSync の Web サイト <http://www.apple.com/colorsync> から入手可能です。


Back to top

Macintosh 版 ColorSync 2.6 の互換性について


ColorSync 1.X/2.X のサポート

バージョン 1.0 のプロファイルとハイブリッド (1.0/2.0) のカラーワールドは、Macintosh 版 ColorSync 2.6 ではサポートされていません。ColorSync 1.0 のプロファイル、API、CMM は使用できません。

CMM

ColorSync 1.0 プロファイルのサポートはもう必要ありません。既存の CMM との互換性はあるはずです。

CMM の新しい API: NCMConcatInit と NCMMNewLinkProfile が追加されました (「CMM の新しい API」を参照)。CMM はこれらの API を実装したほうがよいですが、しなくてもかまいません。その場合はデフォルトの CMM が代わりに呼び出されます。

プロファイルの検索

ColorSync 2.6 では、プロファイル検索関数 (CMNewProfileSearch など) で行うプロファイル検索場所として、新しくシステムフォルダもサポートします。プロファイルフォルダ内のサブフォルダも対象になります。


カラーワールド

新しい API、NCWConcatColorWorld (「ColorSync 2.6 の新しい API」セクションを参照) の導入により、カラーワールドの設計をデベロッパが行えるようになりました。呼び出し側は使用するプロファイルタグとレンダリングインテントを選択することができます。以前はサポートされていなかったプロファイルの組み合わせが利用できるようになりました (例えば、複数デバイスリンクプロファイルなど)。


QuickDraw のマッチング

2.X の QuickDraw 関数 (N/NCMBeginMatching、CMEndMatching、N/CMDrawMatchedPicture、CWMatchPixMap、CWCheckPixMap) は継続してサポートされます。

スクリプトとファイル形式

JPEG、GIF、TIFF ファイル形式プラグインがサポートされました。

バイト順 (エンディアン) の問題

API が構造体でデータを返す場合、そのデータはそのプラットフォームのバイト順 (エンディン) で正しく返されます。つまり、Macintosh では上位バイト先行 (ビッグエンディアン)、Windows では下位バイト先行 (リトルエンディアン) になります。例えば、CMGetCWInfo 関数は CMCWInfoRecord 構造体でデータを返します。この関数が Macintosh で呼び出された場合、構造体の中のデータは上位先行で返されます。

データを単なるバイト列として API に渡したり、API から受け取る場合、そのデータは上位バイト先行 (ビッグエンディアン) と見なされます。この場合、ネイティブなバイト順から上位先行への変換は、呼び出し側が行う必要があります。


Back to top

Windows 版 ColorSync 2.6 の互換性について


CMM

CMM がサポートする必要があるのは、以下のエントリポイントのみです。

CMMatchBitmap, CMMCheckBitmap, CMMConcatInit, CMMCheckColors, CMMClose, CMMGetCMMInfo, CMMMatchColors, CMMOpen, NCMMInit

CMM の新しい API
NCMConcatInit と NCMMNewLinkProfile が追加されました (「CMM の新しい API」を参照)。CMM はこれらの API を実装したほうがよいですが、しなくてもかまいません。その場合はデフォルトの CMM が代わりに呼び出されます。


ColorSync 1.X/2.X のサポート

2.X の API で作成されたアプリケーションは最小限の変更で動作します。ColorSync 1.0 のプロファイル、API、CMM はサポートされません。

プロファイルの利用

ColorSync 2.6 はシステムフォルダの直下に「ColorSync Profiles」フォルダを置きます。CMProfileLocation 構造体 (下記「新しい CMProfileLocation 型」参照) に、このフォルダの Windows ファイルシステム指定を記述するための新しい場所指定型、CMPathLocation が追加されました。


新しい CMProfileLocation 型

CMProfileLocation 型が拡張されました。Windows システムでプロファイルを指定できるようにするため、CMProfileLocation 構造体に新しい場所指定型(Location Type)が追加されました。

現在の場所指定型は以下の通りです。

        CMFileLocation
        CMHandleLocation
        CMPtrLocation
        CMProcedureLocation
                  

現在の場所指定型は以下の通りです。

       
	CMPathLocation      (パスを char の文字列で指定)
	CMBufferLocation   (ポインタとサイズを含む)
                  

#define CS_MAX_PATH     256     // パス名に指定可能な文字数
                  
struct CMPathLocation {
        char    path[CS_MAX_PATH];      // 完全なパス
};
                  
struct CMBufferLocation {
        void *  buffer; // プロファイルデータへのポインタ
        UInt32  size;   // ポインタ領域の大きさ
};
                  
union CMProfLoc {
        CMFileLocation        fileLoc;
        CMHandleLocation      handleLoc;
        CMPtrLocation         ptrLoc;
        CMProcedureLocation   procLoc;
        CMPathLocation        pathLoc;
        CMBufferLocation      bufferLoc;
};
                  
enum {
        cmNoProfileBase         = 0,
        cmFileBasedProfile      = 1,
        cmHandleBasedProfile    = 2,
        cmPtrBasedProfile       = 3,
        cmProcedureBasedProfile = 4,
        cmPathBasedProfile      = 5,
        cmBufferBasedProfile    = 6
};
                  

プロファイルの検索

Windows 版 ColorSync 2.6 は、標準の場所 (システムフォルダ) でプロファイルの検索を行います。


QuickDraw のマッチング

Windows 版 ColorSync 2.6 は、以下の API をサポートしません。


N/NCMBeginMatching, CMEndMatching, N/CMDrawMatchedPicture, CWMatchPixMap, CWCheckPixMap.


PixMaps は CMBitMap によって簡単にマッチングを行うことができます。


Win32 のマッチング

新しい API の CWMatchHBITMAP (前出の「ColorSync 2.6 の新しい API」参照) は、Windows HBitMap 構造体の直接のマッチング / チェックをサポートします。


バイト順 (エンディアン) の問題

API が構造体でデータを返す場合、そのデータはそのプラットフォームのバイト順 (エンディアン) で正しく返されます。つまり、Macintosh では上位バイト先行 (ビッグエンディアン)、Windows では下位バイト先行 (リトルエンディアン) になります。例えば、CMGetCWInfo 関数は CMCWInfoRecord 構造体でデータを返します。この関数が Windows で呼び出された場合、構造体の中のデータは下位先行で返されます。

データを単なるバイト列として API に渡したり、API から受け取る場合、そのデータは上位バイト先行 (ビッグエンディアン) と見なされます。この場合、ネイティブなバイト順から上位先行への変換は、呼び出し側が行う必要があります。

Back to top


参考文献


Back to top

変更履歴

  • 99 年 4 月 Scott Kuechle 初版
  • 99 年 4 月 26 日 NCMConcatProfileSet 構造体定義を修正

Back to top


更新日: 1999 年 4 月 26 日