Windows SDK で最も名前が長い定数・関数ベスト6

Cocoaで最も名前が長いメソッドベスト10 - kaisehのブログ によると、Cocoa で一番長いキーワードは50文字とのこと。

長さなら、Windows ヘッダファイルの方が負けないぜ、ということで、Windows SDK 6.0で調べてみました。

第1位

IIDENTITYAUTHORITY_DOES_TEXTUAL_DEFINITION_MATCH_
TEXTUAL_REFERENCE_FLAG_EXACT_MATCH_REQUIRED
文字数:92
所属ファイル:isolation.h

堂々の第1位は Cocoa にダブルスコア近い92文字の定数。「1行は80文字以内」というコーディング規約をあざ笑うかのような素晴らしい定数ですね。

TEXTUAL と MATCH という単語が2回ずつ登場するあたりが趣深いですね。

第2位

CRYPTNET_PRE_FETCH_VALIDITY_PERIOD_AFTER_NEXT_
UPDATE_PRE_FETCH_DIVISOR_VALUE_NAME
文字数:81
所属ファイル:WinCrypt.h

2位でも80文字越え。WinCrypt.h はこの他にも長い定数のオンパレードとなっております。

こちらの定数でも、PRE_FETCH が2度登場するという素敵な状態となっております。

第3位

CRYPTNET_PRE_FETCH_VALIDITY_PERIOD_AFTER_NEXT_
UPDATE_PRE_FETCH_DIVISOR_DEFAULT
文字数:78
所属ファイル:WinCrypt.h

2位の定数の VALUE_NAME を DEFAULT に置き換えただけの定数です。

第4位

IWMSPublishingPointCurrentCounters_get_Outgoing
DistributionAllocatedBandwidth
文字数:77
所属ファイル:wmsserver.h

やっと関数宣言の登場です。COM 関係はどうしても長くなりますね、はい。

第5位

CRYPTNET_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_
PRE_FETCH_PERIOD_SECONDS_VALUE_NAME
文字数:77
所属ファイル:WinCrypt.h

貫禄の WinCrypt.h です。

第6位

PFN_WEBHOST_LISTENER_APPLICATION_POOL_CAN_
OPEN_NEW_LISTENER_CHANNEL_INSTANCE
文字数:76
所属ファイル:listeneradapter.h

実は、1位~5位までは Undocumented な定数・関数でした。ここにきて、やっと MSDN に記述がある定数が登場しました。IIS 7.0: WEBHOST_LISTENER_CALLBACKS Structure に書いてあります。よかったですね。

まとめ

Windows SDK は Cocoa よりきもい。

使った Perl スクリプトを一応掲載しておきます。

@list=glob('*.h');
%w;
for my $fn(@list){
  open(F,"<$fn");
  $s=join("\n",<F>);
  my @match=($s=~/[A-Z0-9_]{25,}/ig);
  close F;

  for(@match){
    $w{$_} = $fn if defined $_
  }
}

@result = sort {length $b cmp length $a} keys %w;
for(@result){
  print $_ . "(" . $w{$_} . ")\n";
}