OSDN Git Service

インストーラーのパスを変更した
[fooeditengine/FooEditEngine.git] / Common / DotNetTextStore / TextStore2.cs
1 //#define TSF_DEBUG_OUTPUT\r
2 #define METRO\r
3 using System;\r
4 using System.Text;\r
5 using System.Diagnostics;\r
6 using System.Reflection;\r
7 using System.Runtime.InteropServices;\r
8 using System.Globalization;\r
9 \r
10 using DotNetTextStore.UnmanagedAPI.TSF;\r
11 using DotNetTextStore.UnmanagedAPI.TSF.TextStore;\r
12 using DotNetTextStore.UnmanagedAPI.WinDef;\r
13 using DotNetTextStore.UnmanagedAPI.WinError;\r
14 \r
15 namespace DotNetTextStore\r
16 {\r
17     public sealed class TextStore2 : TextStoreBase, IDisposable, ITextStoreACP2, ITfContextOwnerCompositionSink\r
18     {\r
19         #region 生成と破棄\r
20         public void Dispose()\r
21         {\r
22             base.Dispose(false);\r
23             GC.SuppressFinalize(this);\r
24         }\r
25 \r
26         protected override void CreateThreadMgr()\r
27         {\r
28             if (_threadMgr == null)\r
29             {\r
30                 Type clsid = Marshal.GetTypeFromCLSID(TfDeclarations.CLSID_TF_ThreadMgr);\r
31                 ITfThreadMgr2 threadMgr = Activator.CreateInstance(clsid) as ITfThreadMgr2;\r
32 \r
33                 if (threadMgr == null)\r
34                 {\r
35                     const string message = "スレッドマネージャーの生成に失敗しました。";\r
36                     Debug.WriteLine(message);\r
37                     throw new COMException(message, HRESULT.E_NOTIMPL);\r
38                 }\r
39 \r
40                 this._threadMgr = threadMgr;\r
41             }\r
42         }\r
43 \r
44         #endregion\r
45     }\r
46 }\r