魂焦がすまで

amelia2006-09-22

夢とアイディアだけ持っておけば、人間は一生幸せに過ごせると思えてくるのですよ。この20万円宇宙船で。
んにゃしかし、現実を目の当たりにすると、目先の物事をクリアするので精一杯で広視野な行動や判断はなかなか出来ないですね。一歩立ち止まると見えてくるんだけど、全力投球中は完全に狭視野爆裂。
昨日、さっくりとスライダーコントロールを使うダイアログを作成していたんですけど、垂直にすると始点が最上段(上)になってしまい、ハテナ連発していました。直感で考えると、ほら、ミキサーのあれと同じだから、始点は最下段になるはずなんですよ。水平にすると、始点は左になり、直感動作とリンクするのに垂直にすると何故に!て、悩んでいても仕方がないし、とりあえず同じジレンマに陥る輩は沢山いるはずだとググると、そんな悩みを持つ人なんていない。そこから推測出来ることは、

・僕が圧倒的にケアレスミスを起こしている
・スライダーを使う人がほとんどいない
・別にネットに文献を出すまでもない
・欧米文化では垂直階層の概念がそういうものである

こんなところなんだけど、確かにCSliderCtrlで検索しても、思ったよりヒットしないし、サンプルで文献出している人達は、こぞって水平実装にしている。ちゅかさ、オーディオソフト作る場合は必須なコントロールだろうし、それは調べ方が悪いんじゃないかと、意味不明な方向に突っ走ってしまったりしていた。そこで、バカな僕は「コントロールを180度逆転して表示すれば良いのでは?」と思いつき、ローテートで探り始める。しかし、コントロールをCreateする場合やMoveWindowしたりWindowPosで指定する場合は、あくまでも始点座標とサイズな訳で。。あぼーん。んで、そこで思いついたのはMFCサンプル。コモンコントロールのサンプルにスライダー動作検証アプリがあったので、早速ビルドして確認したんだけど、垂直スライダーではやっぱり始点が上になっている。いい加減、夜更けて来たので、SetRange及びSet/GetPosを真逆に値を設定してみたら、当たり前のように意図する動作になった。例えば、0から65535までの階調値を持つスライダーを作りたかったら、レンジは0から65535にすると思うんだけど、-65535から0にしてあげるという。。確かに動作上は問題ないので別に良いんだけど、ソースがめっちゃ見難い。何故に補数求めてるの?て、半年後の僕が疑問に思うわな。でも、文献がないちゅうことは、別に疑問でも何でもないんだろうな。僕には疑問すぎて、今でも使い方が間違っていると疑っていたりする。どう考えても、あの動作はおかしいと。だって、スピンとかは直感動作するしね。にしても、スライダーレンジは32ビットで、スピンは16ビットとか、何か嫌な感じだよねぇ。スピン16ビットはかなり痛い。
隣の人が質問してきたんだけど、ソフト動作とユーザ権限について。制限ユーザでインストールや実行した場合に、どのような現象になるのか?OCX等を含んだソフトの場合はどうなるのか?一般権限以上でインストールした場合、制限ユーザでソフトを起動した時にOCXを参照する権限はどうなるのかと。よくよく考えてみれば、今日まで、制限ユーザでPCにログインすらしたことないので、一体全体、どういうことになるのかなんて検証してみなくては詳細なことは分からないし、以前、サーバアプリを開発していたときに、スレッドのユーザ権限を偽装するようなことをしたのにも関わらず、全体的にどういう振る舞いなのか、恐らくプロセスに権限がマッピングされるんだろうけど、明確に答えが出せない。一般以上でインストールして一般以上で起動すれば良いですよって答えじゃ納得しないだろうし(笑)。Solarisとかで開発していた頃も、suにはいつでも切替出来たし、そんな窮屈な環境で使うユーザのことを考えたこともなかった訳です。この辺は、ネットワーク管理者とかが専門であり、かなりおざなりにしていた知識だったので、ハッとしたね。特に、ActiveX使う場合はセキュアが強化されつつあるので、意図しないガードがかかったりするんじゃなかろうかと。制限ユーザがソフトをインストールする場合の制限として、Program Filesにはインストール不可とか「へ?」て感じだったりね。ベタにexeを落としてきて、そのexeがLocalUser以外のレジストリセクションキーを参照しに行った場合の振る舞いとか(Profile系APIでエラーが発生するだけなのか否か)。。うーん、どうなんでしょ。知りません(笑)
もうね、制限ユーザとかやめませんか?(爆
基本的に、制限ユーザはインストールされているソフトを起動するだけ!ちゅうことならば良いんだけど、どうにもこうにも、ファイルにも権限て付加されるから、もうスパゲッティ状態ですよ。
て、別に調べたり検証すれば良いんだけどね。