Takenoff Labs

Lotus Notes/Domino に関する Tips や、クラシックの名曲などを紹介します

[Notes/Domino] 設計解析講座: データベースプロパティとアイコン(2)

前回の続きです。$Flags、$FlagsNoRefresh、IconBitmap を解説します。

$Flags

$Flags は、以前のエントリでも解説したとおり、半角英数字記号(大文字小文字区別)の組み合わせを保管しています。アイコンノートで使用されるのは、以下のフラグです。(stdnames.h の記述を LotusScript 形式に変換しています。)

Public Const CHFLAG_LAUNCH_APP              = "a"
Public Const CHFLAG_MAILBOX_TYPE            = "A"
Public Const CHFLAG_ADDRESS_BOOK_TYPE       = "b"
Public Const CHFLAG_LIGHT_ADDRESS_BOOK_TYPE = "B"
Public Const CHFLAG_SHOW_CHANGED_POLICY     = "c"
Public Const CHFLAG_LAUNCH_DOCLINK          = "d"
Public Const CHFLAG_LAUNCH_FRAMESET         = "F"
Public Const CHFLAG_LAUNCH_XPAGE            = "?"
Public Const CHFLAG_RESTRICT_STORED_FORMS   = "f"
Public Const CHFLAG_LIBRARY_TYPE            = "g"
Public Const CHFLAG_DEFERRED_LOADED_IMAGES  = "i"
Public Const CHFLAG_PERSONALJOURNAL_TYPE    = "j"
Public Const CHFLAG_LAUNCH_COMPAPP_PAGE     = "k"
Public Const CHFLAG_LAUNCH_NAVIGATOR        = "l"
Public Const CHFLAG_SEARCH_SCOPE_TYPE       = "m"
Public Const CHFLAG_NEVER_SHOW_POLICY       = "n"
Public Const CHFLAG_LAUNCH_OUTLINE          = "o" 'Launch Outline as the navigator
Public Const CHFLAG_ALWAYS_SHOW_POLICY      = "p"
Public Const CHFLAG_MAILFILE_TYPE           = "r"
Public Const CHFLAG_SOLO_NAVIGATOR          = "s"
Public Const CHFLAG_OBSOLETE_DONTUSE        = "t"
Public Const CHFLAG_SITEDB_TYPE             = "u"
Public Const CHFLAG_NO_SHOW_VIEW            = "v"
Public Const CHFLAG_LAUNCH_WEBPAGE          = "W" 'Launch navigator of type Web Page
Public Const CHFLAG_PANE_BIGFOLDER          = "w" 'preview pane orientation; mutually exclusive with below
Public Const CHFLAG_PANE_SMALLVIEW          = "x" 'preview pane orientation; mutually exclusive with above
Public Const CHFLAG_PANE_MAXIMIZED          = "y" 'preview pane size
Public Const CHFLAG_WEB_LAUNCH_DOCLINK      = "D"
Public Const CHFLAG_WEB_LAUNCH_NAVIGATOR    = "L"
Public Const CHFLAG_WEB_ALWAYS_SHOW_POLICY  = "P"
Public Const CHFLAG_WEB_LAUNCH_THISDOCLINK  = "T"
Public Const CHFLAG_WEB_LAUNCH_VIEWNAME     = "V"
Public Const CHFLAG_WEB_USEJAVASCRIPT       = "J"
Public Const CHFLAG_WEB_USESSLCONN          = "X"
Public Const CHFLAG_WEB_LAUNCH_PAGE         = "E"
Public Const CHFLAG_WEB_LAUNCH_XPAGE        = "!"
Public Const CHFLAG_WEB_LAUNCH_FRAMESET     = "S"
Public Const CHFLAG_RESTORE_VIEW            = "K"
Public Const CHFLAG_MULTILINGUAL_DB         = "M"
Public Const CHFLAG_ALLOW_DECS_CONNECTIONS  = "C"
Public Const CHFLAG_NOUNREAD_MARKS          = "z"
Public Const CHFLAG_DISABLE_RESPONSE_INFO   = "1"
Public Const CHFLAG_FORM_BUCKET_OPT         = "2"
Public Const CHFLAG_MAINTAIN_LAST_ACCESSED  = "3"
Public Const CHFLAG_DELETES_ARE_SOFT        = "4"
Public Const CHFLAG_IS_LOCK_DB              = "5"
Public Const CHFLAG_IS_DESIGN_LOCK_DB       = "6"
Public Const CHFLAG_LARGE_UNKTABLE          = "7"
Public Const CHFLAG_HIDE_FROM_WEB           = "8"
Public Const CHFLAG_IS_WEBAPPLICATION       = "9"
Public Const CHFLAG_REFRESH_ON_ADMIN        = "e"
Public Const CHFLAG_COPY_PROFILES           = "G" 'For templates - copy profile notes on creating database from this one and when refreshing databases from it
Public Const CHFLAG_LZ1                     = "Z" 'LZ1 compression db option
Public Const CHFLAG_REPL_UNREAD_CLUSTERED   = "Q"
Public Const CHFLAG_REPL_UNREAD_EVERYWHERE  = "U" 'Icon flag for enabling replication of unread marks - on AND off cluster
Public Const CHFLAG_TRACK_REPLYFORWARD      = "h" 'inherited track reply/forward flag
Public Const CHFLAG_OOS_ENABLED             = "O" 'icon flag flagigng if out of office service is enabled DBOPTBIT_OOS_ENABLED
Public Const CHFLAG_SUPPORT_RESP_THREADS    = "H" 'icon flag marking that the database supports reponse threads
Public Const CHFLAG_THEMES                  = "I" 'enable themes in this database
Public Const CHFLAG_COMPRESSED_DESIGN       = "q" 'compress design documents
Public Const CHFLAG_COMPRESSED_DATA_DOCS    = "N" 'compress data documents
Public Const CHFLAG_DISABLE_AUTO_VIEW_UPDS  = "0" 'don't have update task update views for this DB (on servers)

定数名を見れば、だいたい何を指しているかはわかるかと思います。

$FlagsNoRefresh

$FlagsNoRefresh は、stdnames.h の説明のよれば、再設計/設計の置換で親テンプレートからフラグを引き継がないようにするためのものだそうです。

Public Const CHFLAG_NR_ADV_TEMPLATE             = "t"
Public Const CHFLAG_NR_SINGLE_COPY_TEMPLATE     = "s"
Public Const CHFLAG_NR_DONTTRACK_REPLYFORWARD   = "r" 'need separate flags here because
Public Const CHFLAG_NR_DOTRACK_REPLYFORWARD     = "f" 'we need to know if user turned off OR on to override template setting
Public Const CHFLAG_NR_REPLUNREAD_NEVER         = "v"
Public Const CHFLAG_NR_REPLUNREAD_CLUSTERED     = "Q"
Public Const CHFLAG_NR_REPLUNREAD_EVERYWHERE    = "U"

IconBitmap

IconBitmap は、文字通りアイコンのデータが入っているところです。どういう構造になっているか、についてはこちらのアイコンデータをリッチテキストにコピーするサンプルを見ていただければわかるかと(得意の丸投げ)。バイナリデータになると、ちょっと複雑ですね。

R8.5.2以降のアイコン

R8.5.2 以降で、ようやくアイコンに GIF、JPEG、PNG のデータが使えるようになりました。っつーか遅すぎ(- -メ

この新しいアイコンは、IconBitmap ではなく、$DBIcon という名前のイメージリソースとして作成されます。$DBIcon は$Flagsに「~」(DESIGN_FLAG_HIDEFROMDESIGNLIST)が立っていることにより、設計リストには表示されません。

$DBIcon ノートは、通常のイメージリソースと構造は同じです。リッチテキストにコピーするには、NIFFindDesignNoteByName あたりでノートIDを取得して、$ImageData をそのままコピーすればいいのではないでしょうか($ImageData はリッチテキストアイテムなので。試してないですが)。


(次回に続く)

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
読み込み中...

トラックバック

トラックバックはありません

コメント

こんにちは

>$ImageData をそのままコピーすればいいのではないでしょうか($ImageData はリッチテキストアイテムなので。試してないですが)。

イメージリソースの$ImageDataと同じく、ファイルリソースの$FileDataもリッチテキストデータなのですが、
ForAll o In rtitem.EmbeddedObjects
でエラーになってしまいます。
なんとか、ファイルリソースをスクリプトから取得できない物でしょうか?

iwachiさん、コメントありがとうございます! 😀

$FileData の場合、$FILE ではないので、残念ながら EmbeddedObjects では取得できません。
あくまで LotusScript でやるなら、「リッチテキストアイテム解析の基礎」の方法で、CDFILEHEADERCDFILESEGMENT を解析しなければなりません。
($FileData がどのようなデータになっているかは、拙作の Note Dump Tool で見てみてください。)
ものすごく難しいわけではありませんが、それなりに面倒な処理にはなりますね……。

※コメントは承認制となっております。管理者が承認するまで表示されません。申し訳ありませんが、投稿が表示されるまでしばらくお待ちください。





(以下のタグが使えます)
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

For spam filtering purposes, please copy the number 8252 to the field below:

^
×