約 4,312,541 件
https://w.atwiki.jp/xboxonescore/pages/853.html
7th Sector 項目数:25 総ポイント:1000 難易度: Hypnosis Wait for TV phantom 40 Stubborn Try again 40 Suicide Die 100 times 40 On the other side Another phantom in an appartment 40 Omen TV phantom in the train 40 Revenge Destroy the first machine gun 40 Logic Turn off the transformer after the conveyor 40 Locomotive Wait for the train at the factory 40 Observer Yes, wait for phantom again! 40 Disease Phantom in Shelter C 512 40 Sound Wave Phantom 40 New life Phantom in a brick house 40 BOSS is always watching Phantom in the Tower 40 Killer Kill a man at the factory 40 Nowhere to run Final 1 40 The only way is down Final 2 40 Сhaos Final 3 40 Conversation Final 4 40 Stalled? Hit the starter 40 Musical pause Robots are persons too 40 Chronicles Download all images on HDD 40 Enlightened Activate all phantoms 40 Caring Water the lawn 40 Help your fellow man Release a prisoner 40 Take it easy, man! Don’t shoot! 40
https://w.atwiki.jp/john_doe/pages/74.html
Economize Jennifer West [Dark Sky Defender award] Campus Light Pollution Information ■ Enlightenment activity Light Down 2018 06.21-07.0706.2107.07 啓発期間夏至ライトダウン (Black illumination)七夕ライトダウン (Cool earth day) 断熱 株式会社日進産業GAINA 塗る断熱材でニッポンを冷やす! ■ 冷蔵庫:ビニールカーテン? 視認性の悪さや安心感から、開閉時間が長く為る可能性が有り 冷気がドアポケット迄、届か無く為って仕舞う為 冷蔵庫内とドアポケットに、温度差が生じる エアコン:除湿or冷房? 除湿は1時間半で、冷房28℃2時間分の電気量を突破し 2時間経つと、冷房26℃の電気量を超えて仕舞う チラ裏 [節電] 手拭いを湿らせて、首に巻く。タオルでは、水分が蒸発し難く不適切。プラス団扇や扇風機なら、涼感up [節電] 蝋燭の使用増加で、火災発生も増加傾向 [節電] LEDガーデンソーラーライトの設置で、防犯。更に、室内照明に活用 [節電] 打ち水、逆効果に注意 Information retrieval PC farm Co., Ltd. WILDCAT. Disposable Lighter
https://w.atwiki.jp/mc_memo/pages/23.html
# This is the BetterFonts configuration file. Any lines that start with # are # comments and get ignored. If the same property name appears multiple times # in the file, only the last value will be used. # The font.name property changes the default font used in Minecraft. This can # be the name of a real font like Times New Roman, or one of Java s logical # fonts like Serif, SansSerif, or Monospaced. If font.name is missing, the # default font used will be SansSerif. #font.name=SansSerif font.name=Meiryo UI BOLD #font.name=Monospaced #font.name=Times New Roman # You can use the font.size property to affect how large or small the text # will appear. This must be an integer greater than zero, and if omitted # the default size used is 18. font.size=18 # This property enables anti-aliasing which blurs the edges of the font to # make it seem less jagged, but this can also make the font seem less sharp. # The property should be set to either the word "true" or "false, and you ll # have to experiment with both options to determine which one looks better. # If font.antialias is missing, the default is to disable anti-aliasing. #font.antialias=false font.antialias=true # By default, Minecraft draws drop shadow for any text in the GUIs and the # chat. Setting this to "false" will disable this shadow which can make some # fonts more readable. #font.dropshadow=true font.dropshadow=false
https://w.atwiki.jp/tsgt/pages/2.html
Contents S60概要 開発環境 開発記録 参考文献 管理人のブログ
https://w.atwiki.jp/mrfrtech/pages/45.html
Market Scenario Digital technology Computerized innovation today essentially utilizes two detects like sound and sight. Yet, it may not be well before a human can taste, feel and smell computerized objects in a way that is indistinct from actual encounters. With the innovative high-speed advances in AR (Augmented Reality) and VR (Virtual Reality) applications and the hyper-availability of 5G, computerized encounters will probably move from screen-based to detect situated in the following approaching years. Ericsson’s Research group named the Internet of Senses, where individuals will actually want to feel the world without utilizing contraptions, cell phones included, now characterizes this availability time. It contains six applications smell, taste, sight, psyche, contact, and sound. In the web of faculties, sound, visual, haptic, and different advancements empower people to have computerized tactile encounters like the ones experienced in the actual world. The web of faculties expands human faculties past the limits of bodies, giving increased hearing, contact, vision, and smell. It permits a person to mix multisensory computerized encounters with nearby environmental elements and interface with far-off gadgets, individuals, and robots as though they were right close to him/her. Additionally, the web of faculties will depend on advances including man-made consciousness (AI), increased reality (AR), computer-generated reality (VR), and mechanization to collaborate with human feelings of sound, sight, taste, smell, and contact. Besides, buyers will be the significant client of this innovation in the future as carefully sense will acquire a critical interest in light of this present innovation s endless conceivable use cases. For instance, purchasers could carefully visit backwoods or the open country, including encountering every one of the normal scents feels of those places. An individual could embrace loved ones many miles away. This innovation genuinely holds the potential and could be incredibly gainful for incapacitated individuals. Request a Free Sample @ https //www.marketresearchfuture.com/sample_request/10747 Competitive Outlook The Internet of Senses Market is characterized by the presence of several regional and local providers. Some of the key players in the market are Telefonaktiebolaget LM Ericsson (Sweden) Segmentation The worldwide Internet of Senses has been divided into innovation, application, end client, and district/country. The Internet of Senses Market has been portioned into equipment, programming, and administration in view of the part. Equipment is additionally sorted into gadgets and sensors. In view of innovation, the Internet of Senses Market has been fragmented into Artificial knowledge (AI), Virtual reality (VR), Augmented reality (AR), and others. The market has been portioned into hearing, sight, smell, taste, contact, and brain in view of the application. In view of the end client, the market has been portioned into purchasers and undertakings. Endeavors additionally bifurcated into retail, fabricating, medical care, car, schooling, media and diversion, aviation and safeguard, government, and others. . Regional Analysis The worldwide web of faculties market is relied upon to acquire critical income from the different mainland during the projected period. The geographic investigation of the worldwide Internet of Senses market has been directed for North America, Europe, Asia-Pacific, the Middle East and Africa, and South America. North America is additionally ordered into the US, Canada, and Mexico. Europe is additionally ordered into the UK, Germany, France, and the Rest of Europe. The Asia Pacific is additionally portioned into China, Japan, India, South Korea, and the Rest of Asia Pacific. Industry News Countless representatives expect that innovation will empower individuals to detect the mindset of their partners working on the flavor of container food and different faculties by 2030, as per a report delivered by Ericsson. Browse Full Report Details @ https //www.marketresearchfuture.com/reports/internet-of-senses-market-10747 Table of Contents 1Executive Summary 2Scope of the Report 2.1Market Definition 2.2Scope of the Study 2.2.1Research objectives 2.2.2Assumptions Limitations 2.3Markets Structure Continued…. View Similar Report** Internet of things (IoT) Market https //ictmrfr.blogspot.com/2022/04/internet-of-things-market-growth-key.html B2B Telecommunication Market https //www.scutify.com/articles/2022-04-12-b2b-telecommunication-market-analysis--geographic-growth-opportunities-for-it-security-and-data- Cash Management System Market https //market-research-future.tribe.so/post/cash-management-system-market-size-receives-a-rapid-boost-in-economy-due-to--625d5382d24f49591bd3befb Enterprise Data Warehouse (EDW) Market https //tealfeed.com/enterprise-data-warehouse-market-analysiskey-players-hqfr7 About Market Research Future At Market Research Future (MRFR), we enable our customers to unravel the complexity of various industries through our Cooked Research Report (CRR), Half-Cooked Research Reports (HCRR), Raw Research Reports (3R), Continuous-Feed Research (CFR), and Market Research Consulting Services. Contact Market Research Future (Part of Wantstats Research and Media Private Limited) 99 Hudson Street, 5Th Floor New York, NY 10013 United States of America 1 628 258 0071 (US) 44 2035 002 764 (UK) Email sales@marketresearchfuture.com Website https //www.marketresearchfuture.com #market #research #industry #data #report #share #digital #gnews Plugin Error キーワードを入力してください。 #trend #future #analyis #industryreport #industrygrowth #demographic #strategy #manegment
https://w.atwiki.jp/idea/pages/2.html
メニュー Contents スロット1 スロット2 スロット3 スロット4 スロット5 スロット6 スロット7
https://w.atwiki.jp/morrowind/pages/377.html
The Elder Scrolls Plugin Conflict Detector (TESPCD)【Modの衝突の状況を調べる】 最終更新日 2009-12-26 タグ #E #T *プログラム Mod管理 TESPCD 必須 概要 Ely VanReen Sotoさん作。 Modの衝突の状況を調べるプログラム。 更新は止まっているが、かなり便利なプログラム。Modをたくさん使う人には必須。 設定 Leveled Listの衝突はWrye Mashで解消できるので調べる必要はない。Leveled Listの衝突を調べないようにするには次のようにする。Operations- Options- Conflictsタブ- LEVCとLEVIを無効にする。 使い方 TESPCDの使い方 ダウンロード morrowindnexus -- TESPCD 作者のサイト -- tespcdv031.zip 2009-09-19現在、ファイル自体は存在するが、作者のサイトは消滅した模様。ファイルが壊れてる? PES -- TESPCD Plugin Conflict Detector コメント欄 名前 コメント
https://w.atwiki.jp/livetube/pages/471.html
基本情報 配信名 tororo ジャンル civ4マルチ 性別 男 年齢 不真面目な学生 マイク 有 配信者ページ http //livetube.cc/tororo あなたは - 人目の長弓兵であり、現在-人がねばねばしています ▼配信内容 Civ4マルチ ▼特徴 配信者の中でも特にテンションが高い とろりこん ポスト狂犬配信と言われている 長弓オンライン(長弓には夢があるらしい)とろろん長弓 とくちょう:主に野戦で活躍するユニット。敵の攻めっ気を著しく奪い、 エンターの遅いとろろさんに全チャ無双する余裕を与えてくれる。 終盤の海上襲撃や都市攻撃においても主力である。 またgdgdの戦争になってからは、ターン際のしつこい改善破壊もこなす。 なお、負けが確定してから滅びない程度の能力を有するが、 戦局を覆し勝ちに繋がる能力はない。 序盤で滅亡、終盤で空気になるのが得意 画面をよく前後に動かす(特に意味はない) 特にチーム戦において絶望的な適正を持つ ★とろろんの問題点★ 1.状況を判断できない。 2.ノリだけで行動を決める。 3.Civを持ってないのに持ってるつもりで語る。 ▼名言・珍言・口癖 「勝ってくださいとかいう立地でしょ」 「今回は運が悪かった。運が悪かったよー(キリッ」 「メイスとかどうせつかえねーし」 「俺が悪いんじゃない!確率が悪いんだ!」 「だけど布団に入っても練れないんだ・・・」 「暇だな」(他参加者をエンターで待たせながら) ★とろろ語講座★ 悪くない→悪かった ※使用例:俺は悪くない(俺が悪かった) 悪かった→悪くない ※使用例:確率が悪かった(確率が悪くない) ▼近況 空気と完全に同化する技術を体得したとろろんは IRCでも屈指の勝率を手に入れたらしい でも空気すぎて誰の記憶にも残っていないんだってさ 金融ロードスアレクアルテミパルテノンマウソバチカンで 最後まで野放しにされる男の人って・・・ 最近ではFE、信長天道等に浮気気味であるが 特にマリオ落としに関してはプロの腕前になっており リスナーからも感嘆の声が漏れるほどである ▼配信中のネ申プレイ・m9プレイ 蛮族戦士の隣に護衛無しで都市を建て、破壊される。(本人はQBKだったと主張) 早期のイベント蛮族による都市破壊は天災のようなものであり、 防ぐことも不可能に近いがこのケースは全く普通の蛮族の戦士であり、 通常のプレイで都市を破壊されることは皆無と言ってよい。 1000人中999人は防げる都市破壊であり、とろろさんが選ばれし一人 であることの証明と言えるだろう。 ※蛮族は一定ターンまでは自発的に文化圏に入ってこないが隣接範囲に 攻撃目標が現れた場合は別である。 2時間20分で2連続滅亡を達成する。 1回目の滅亡は金融防衛火車で序盤に圧倒的アドバンテージを持つ王建。 狭い立地のため火車斧ラッシュでどこか隣国を滅ぼすつもりのとろろん。 しかしいつもどおりヘンジを立て、66T時点での全戦力は斧4槍1。 防衛志向なのに防壁はもちろん、弓の1体すらいないという異常事態。 そこに隣国のサラディンが斧19カタパ2という模範的な軍量でラッシュ。 マラソンで黄金期という神イベントが発生するが、豚に真珠、とろろに神イベント 2国に攻められた他国が必死に抵抗しているのをよそに、ほぼ無抵抗で滅亡する。 滅亡後周辺国は、「エネ横ばいでぬくりすぎだし仕方ないね」と語っていた。 戦争準備中だったのにこんなこと言われちゃう男の人って・・・ 2回目の滅亡は神首都パカル、首都に銅が沸くという素晴らしい展開。 第二と首都聖都で閉じ込めたブーディカ(攻撃カリスマで強い)に2都市ラッシュ! しかしなぜかその戦力は斧5槍1。 寡兵ながらも糞都市に奇襲し辛くもこれを落とす。 (とろろんが奴隷制すら採用せず、エネも低いため油断していたのだろう) しかしなぜか占領したため即奪還。ただでさえ少ない兵力の9割を失ってしまう。 軍事力を失ったとろろんに逆侵攻は続き、当然のように滅亡させられる。 とろろんの神首都を容易に手に入れたブーディカはこのゲームに勝利した。 初心者が混ざるとバランス崩壊するという良い例と言えよう。 なお、これらの滅亡はあまりにもひどすぎるため、垢を借りた偽者という説もある 後日、またもとろろんを瞬殺したブーディカが世界を制することとなる。 とろろんを制すもの世界を制す。バランスブレイクってレベルじゃねーぞ! 11月10日 自分で作った特殊部屋現代スタートにて自分から徳川に宣戦。 当然挟み撃ちにされ、5T程度で唯一の都市の首都を割られる。 とろろマジック☆ミ 端立地の徳川でどうしようもない2都市、なんとか鉄で戦争しなくてはいけない状況 gdgd戦争が始まり、空気配信になることを誰もが覚悟した49T・・・ 神立地のサラディン先生が何故か攻めてきて労働者拉致して干し直し これは一説によると、とろろがあまりにあわれだったためとも噂されている リスナー建にIRC部屋のレベルの高さを印象付ける出来事であった リスナーに対するサービス精神 参加者は八重さん、煙草さん、水の人等超豪華なIRC部屋 もし滅亡したら闘神都市配信をする と強気のとろろん ひいた指導者はナポレオン 川沿い 金金モロコシ象石染料染料という神首都 第二第三都市でそれぞれ銅確保と磐石の構え これはさすがにとろろさんが滅びるわけないと残念そうなリスナー一同 30T前後から隣国の毛沢がゴミ首都でチャリ生産して隠すを繰り返すという どうみてもチャリRという動きを始める 増加するエネルギーグラフ、こちらに伸びる道、砂漠の鉄をあえて改善する毛沢 全ての状況が毛沢のチャリRを伝えているにもかかわらず リスナーの警告を無視して首都と第二で図書館を作り始める そして迎えた50T、当然のように毛沢のチャリR 迎え撃つは首都の槍2斧1 全都市が丘のとろろんはゆるりと都市から迎撃するだけで楽勝なのだが あえて槍2斧1による突撃をかける 直後我々の目に入ったのは一瞬で落とされた首都と第二都市であった 第三都市で弓オンラインになるものの、なぜか研究はアルファベットと通貨 当然のように毛沢に滅ぼされるのであった これは闘神都市配信を求めるリスナーのためにあえて滅亡という泥を被った とろろさんのサービス精神をあらわすエピソードと言えよう 皆さんの反応 ぼるびっ子の父親 毛沢さん 「これは酷いとろろだった」「奴にこの神立地は勿体無い」 全裸蛮族さん(仮名) 「とろろなら仕方ない」 TRRさん(仮名) 「神首都かと思ったけど実際これたいしたことないなー」 「水の人は俺のエサ(キリッ)」 48Tに斧2で2国に同時宣戦布告初期R 前述のとおりIRC部屋では50T前の戦争行為はそう珍しいものではない。 IRC部屋常連のとろろんらしい恐るべき奇襲である。 なお、他の参加者が文句を言ったので仕方なく停戦に至るが、 戦争継続していた場合、終わっていたのはとろろんであることは言うまでも無い。 その後、50T後に再度同じ場所に今度は斧1象1で宣戦布告をする。 これを見たイザベルは恐怖のあまり熱が出て代理を募集することになってしまった。 まさにとろろである。 また、同ゲームのイザベル代理の勝利を祝うために、 マドリッドへ大量の軍を海上から上陸させるというパフォーマンスも見せた。 これは決して宣戦布告をし忘れたわけではない。あくまで友好的上陸である。 ▼伝説の配信 戦争解禁10Tの紙箱さんとのタイマン 文明はモンゴル 先行スタート75で戦士置けるのに斥候を選び、初手労働者によって12Tで滅亡が確定する ここでとろろは萎え落ちという最低の行為に及ぶこととなる。 これは知られている限りCivの歴史上最速の萎え落ちである。 ▼チーム戦武勇伝 とろろんはチーム戦において絶望的な適正を持つ。 通常のゲームより遥かに勝率の高いチーム戦において、 未だに一度も勝った事が無いくらい適正が無い。 同じチームにねばねばした奴がいたら負けを確信してもいい。 しかしこれは実は演技であり、リスナー達にチーム戦の心構えを 伝えるための反面教師プレイである。 これを無駄にしないために、ここにその武勇伝の一部を記録する。 初心者っぽく、後方を担当したがる人をあえて前線に配置する。 首都配置でミスってどう考えても内政向きのエリザベスを前線担当にする。 遠すぎる都市を仲間に譲渡。維持費により研究0%赤字で労働者がストライキで解体。 一人だけ都市を増やさず、土地を使い切らないのでスコアが伸びない。 そもそも戦争が絶望的に下手なので前線担当は死亡フラグ そもそも内政も絶望的に下手なので研究担当も死亡フラグ 最初の開拓者を動物に食べられる。 ▼その他 ロリ技能検定試験結果です。(Ver 1.05b) 試験日 Wed Oct 22 21 43 40 UTC+0900 2008 ロリ度 88 ポイント 鬼畜度 20 ポイント あなたの好みは 9歳 - 13 歳の女の子 ▼ 評価 ▼ スバラシイ!あなたは、かなり重度のロリコンだと思われます!あなたは 幼ければ幼いほど萌えるタイプです。小学生以下にしか興味を示しませんね あなたの鬼畜度は低めのようです! 女の子をなでなでしてあげた~い!、とか思ってませんか? 本人の弁:まぁ軽くロリコンって感じだけど、そういう風に作られてるからしょうがないよね! とろろ発見方法 エンターが一番遅い 力関係的に空気の癖に全チャがうるさい 誰かが落ちるとすぐ萎え落ちだと騒ぐ どうでもいい戦争で泥沼してる ぬくってたのに研究が遅い 無防備であほみたいに遺産を建てる 斧5体以下でラッシュしてくる よくわからないユニットの改名 3つ以上あてはまったらほぼ間違いなくとろろんです ▼テンプレ 諦めかけたとき あきらめたとかいうなよとろろん もっとねばねばして、全然伝わらないよ、もっともっと! はい、伝わった、いますっごいねばねば(gdgd)してるよ 戦争中 ○○さんは戦争嫌いと言いつつも上手かったけど とろろさんは本当に下手ですねwww プリメ時 とろろ「ねばっ、ねばねばっ」 むすめ「ぁぁ、そこはぁ・・・」 とろろ「ねばねばっ」 むすめ「らめえぇ」 とろろ「ねばねばっ」 ▼配信して欲しいもの 選択肢 投票 civマルチ (14) プリメ1 (1) プリメ2 (0) プリメ3 (5555555561) プリメ4 (7) プリメ5 (25) むすめーかー (24234129879328) マリオ落とし (919828179)
https://w.atwiki.jp/allforwin/pages/4.html
CONTENTS トップページ 年間スケジュール 契約・移籍情報:2010 【アウェイ情報】 更新情報 取得中です。
https://w.atwiki.jp/sampleisbest/pages/79.html
開発環境 Microsoft Visual C++ 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 Win32 プロジェクト プロジェクト名 aaa アプリケーションの種類 Windows アプリケーション 追加のオプション 空のプロジェクト レジストリへの登録 regsvr32 C \aaa.dll レジストリの登録を解除 regsvr32 /u C \aaa.dll DLLの置き換え レジストリの登録を解除 シェル(explorer)を再起動 デバッグにはDebugViewを使う。 参考 ショートカットメニュー ハンドラ aaa.def ; リンカー/入力/モジュール定義ファイル LIBRARY"aaa" EXPORTS DllCanUnloadNow PRIVATE DllGetClassObject PRIVATE DllRegisterServer PRIVATE DllUnregisterServer PRIVATE aaa.h class CContextMenu public IContextMenu, public IShellExtInit { public STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject); STDMETHODIMP_(ULONG) AddRef(); STDMETHODIMP_(ULONG) Release(); // IContextMenu STDMETHODIMP QueryContextMenu( HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags); STDMETHODIMP GetCommandString( UINT_PTR idCmd, UINT uFlags, UINT *pwReserved, LPSTR pszName, UINT cchMax); STDMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO pici); // IShellExtInit STDMETHODIMP Initialize(PCIDLIST_ABSOLUTE pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID); CContextMenu(); ~CContextMenu(); private LONGm_cRef; }; class CClassFactory public IClassFactory { public STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject); STDMETHODIMP_(ULONG) AddRef(); STDMETHODIMP_(ULONG) Release(); // IClassFactory STDMETHODIMP CreateInstance(IUnknown *pUnkOuter, REFIID riid, void **ppvObject); STDMETHODIMP LockServer(BOOL fLock); }; aaa.cpp #pragma comment(lib, "shlwapi.lib") #include ShlObj.h #include Shlwapi.h #include Windows.h #include "aaa.h" // 関数プロトタイプ宣言 void LockModule(BOOL bLock); BOOL CreateRegistryKey(HKEY hKeyRoot, LPTSTR lpszKey, LPTSTR lpszValue, LPTSTR lpszData); void Trace(LPCTSTR ptcFormat, ...); // グローバル変数 const CLSIDCLSID_ContextMenuSample = {0x6986c66a, 0x401f, 0x4535, {0x89, 0x18, 0x48, 0x07, 0x29, 0x39, 0xd2, 0xa4}}; const TCHARg_szClsid[] = TEXT("{6986C66A-401F-4535-8918-48072939D2A4}"); const TCHARg_szProgid[] = TEXT("Sample.ShellExtension"); const TCHARg_szExt[] = TEXT(".aaa"); const TCHARg_szHandlerName[] = TEXT("My ShortcutMenu Handler"); LONGg_lLocks = 0; HINSTANCEg_hinstDll = NULL; //============================================================================== // CContextMenu CContextMenu CContextMenu() { m_cRef = 1; LockModule(TRUE); } CContextMenu ~CContextMenu() { LockModule(FALSE); } STDMETHODIMP CContextMenu QueryInterface(REFIID riid, void **ppvObject) { *ppvObject = NULL; if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_IContextMenu)) { *ppvObject = static_cast IContextMenu * (this); } else if (IsEqualIID(riid, IID_IPersist) || IsEqualIID(riid, IID_IShellExtInit)) { *ppvObject = static_cast IShellExtInit * (this); } else { return E_NOINTERFACE; } AddRef(); return S_OK; } STDMETHODIMP_(ULONG) CContextMenu AddRef() { return InterlockedIncrement( m_cRef); } STDMETHODIMP_(ULONG) CContextMenu Release() { if (InterlockedDecrement( m_cRef) == 0) { delete this; return 0; } return m_cRef; } //------------------------------------------------------------------------------ // IContextMenu STDMETHODIMP CContextMenu QueryContextMenu( HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) { MENUITEMINFOmii; if (uFlags CMF_DEFAULTONLY) { return MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_NULL, 0); } mii.cbSize= sizeof (MENUITEMINFO); mii.fMask= MIIM_ID | MIIM_TYPE; mii.fType= MFT_STRING; mii.wID= idCmdFirst; mii.dwTypeData= TEXT("A"); InsertMenuItem(hmenu, indexMenu, TRUE, mii); return MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_NULL, 1); } STDMETHODIMP CContextMenu GetCommandString( UINT_PTR idCmd, UINT uFlags, UINT *pwReserved, LPSTR pszName, UINT cchMax) { switch (idCmd) { case 0 switch (uFlags) { case GCS_HELPTEXTA lstrcpyA(pszName, "説明文A"); break; case GCS_HELPTEXTW lstrcpyW((LPWSTR)pszName, L"説明文A"); break; case GCS_VERBA lstrcpyA(pszName, "A"); break; case GCS_VERBW lstrcpyW((LPWSTR)pszName, L"A"); break; } break; default return E_FAIL; } return S_OK; } STDMETHODIMP CContextMenu InvokeCommand(LPCMINVOKECOMMANDINFO pici) { UINTidCmd = LOWORD(pici- lpVerb); if (HIWORD(pici- lpVerb) != 0) { return E_INVALIDARG; } switch (idCmd) { case 0 MessageBox(NULL, TEXT("A"), TEXT("OK"), MB_OK); break; } return S_OK; } //------------------------------------------------------------------------------ // IShellExtInit STDMETHODIMP CContextMenu Initialize(PCIDLIST_ABSOLUTE pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID) { Trace(L"Initialize\n"); //Trace(L"%u\n", pidlFolder- mkid.cb); return S_OK; } //============================================================================== // CClassFactory STDMETHODIMP CClassFactory QueryInterface(REFIID riid, void **ppvObject) { *ppvObject = NULL; if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_IClassFactory)) { *ppvObject = static_cast IClassFactory * (this); } else { return E_NOINTERFACE; } AddRef(); return S_OK; } STDMETHODIMP_(ULONG) CClassFactory AddRef() { LockModule(TRUE); return 2; } STDMETHODIMP_(ULONG) CClassFactory Release() { LockModule(FALSE); return 1; } //------------------------------------------------------------------------------ // IClassFactory STDMETHODIMP CClassFactory CreateInstance(IUnknown *pUnkOuter, REFIID riid, void **ppvObject) { CContextMenu*p; HRESULThr; *ppvObject = NULL; if (pUnkOuter != NULL) { return CLASS_E_NOAGGREGATION; } p = new CContextMenu(); if (p == NULL) { return E_OUTOFMEMORY; } hr = p- QueryInterface(riid, ppvObject); p- Release(); return hr; } STDMETHODIMP CClassFactory LockServer(BOOL fLock) { LockModule(fLock); return S_OK; } //============================================================================== // DLL Export STDAPI DllCanUnloadNow(void) { return (g_lLocks == 0) ? S_OK S_FALSE; } STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) { static CClassFactory serverFactory; HRESULThr; *ppv = NULL; if (IsEqualCLSID(rclsid, CLSID_ContextMenuSample)) { hr = serverFactory.QueryInterface(riid, ppv); } else { hr = CLASS_E_CLASSNOTAVAILABLE; } return hr; } STDAPI DllRegisterServer(void) { TCHARszModulePath[MAX_PATH]; TCHARszKey[256]; wsprintf(szKey, TEXT("CLSID\\%s"), g_szClsid); if (!CreateRegistryKey(HKEY_CLASSES_ROOT, szKey, NULL, TEXT("ShellExtension Sample"))) { return E_FAIL; } GetModuleFileName(g_hinstDll, szModulePath, _countof(szModulePath)); wsprintf(szKey, TEXT("CLSID\\%s\\InprocServer32"), g_szClsid); if (!CreateRegistryKey(HKEY_CLASSES_ROOT, szKey, NULL, szModulePath)) { return E_FAIL; } wsprintf(szKey, TEXT("CLSID\\%s\\InprocServer32"), g_szClsid); if (!CreateRegistryKey(HKEY_CLASSES_ROOT, szKey, TEXT("ThreadingModel"), TEXT("Apartment"))) { return E_FAIL; } wsprintf(szKey, TEXT("%s"), g_szExt); if (!CreateRegistryKey(HKEY_CLASSES_ROOT, szKey, NULL, (LPTSTR)g_szProgid)) { return E_FAIL; } wsprintf(szKey, TEXT("%s\\shellex\\ContextMenuHandlers\\%s"), g_szProgid, g_szHandlerName); if (!CreateRegistryKey(HKEY_CLASSES_ROOT, szKey, NULL, (LPTSTR)g_szClsid)) { return E_FAIL; } return S_OK; } STDAPI DllUnregisterServer(void) { TCHARszKey[256]; wsprintf(szKey, TEXT("CLSID\\%s"), g_szClsid); SHDeleteKey(HKEY_CLASSES_ROOT, szKey); SHDeleteKey(HKEY_CLASSES_ROOT, g_szExt); SHDeleteKey(HKEY_CLASSES_ROOT, g_szProgid); return S_OK; } BOOL APIENTRY DllMain( HINSTANCEhinstDLL, DWORDfdwReason, LPVOIDlpvReserved) { switch (fdwReason) { case DLL_PROCESS_ATTACH g_hinstDll = hinstDLL; DisableThreadLibraryCalls(hinstDLL); break; } return TRUE; } //============================================================================== // Function void LockModule(BOOL bLock) { if (bLock) { InterlockedIncrement( g_lLocks); } else { InterlockedDecrement( g_lLocks); } } BOOL CreateRegistryKey(HKEY hKeyRoot, LPTSTR lpszKey, LPTSTR lpszValue, LPTSTR lpszData) { HKEYhKey; LONGlResult; DWORDdwSize; lResult = RegCreateKeyEx(hKeyRoot, lpszKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, hKey, NULL); if (lResult != ERROR_SUCCESS) { return FALSE; } if (lpszData != NULL) { dwSize = (lstrlen(lpszData) + 1) * sizeof (TCHAR); } else { dwSize = 0; } RegSetValueEx(hKey, lpszValue, 0, REG_SZ, (LPBYTE)lpszData, dwSize); RegCloseKey(hKey); return TRUE; } void Trace(LPCTSTR ptcFormat, ...) { va_listargs; TCHARatcBuf[512]; intiRet; va_start(args, ptcFormat); iRet = wsprintf(atcBuf, ptcFormat, args); if (0 iRet) { OutputDebugString(atcBuf); } va_end(args); }