Exemplo n.º 1
0
        internal TextServicesCompartment GetThreadCompartment(Guid guid)
        {
            // No TextServices are installed so that the compartment won't work.
            if (!TextServicesLoader.ServicesInstalled ||
                TextServicesContext.DispatcherCurrent == null)
            {
                return(null);
            }

            UnsafeNativeMethods.ITfThreadMgr threadmgr = TextServicesContext.DispatcherCurrent.ThreadManager;
            if (threadmgr == null)
            {
                return(null);
            }

            if (_compartmentTable == null)
            {
                _compartmentTable = new Hashtable();
            }

            TextServicesCompartment compartment;

            compartment = _compartmentTable[guid] as TextServicesCompartment;
            if (compartment == null)
            {
                compartment = new TextServicesCompartment(guid,
                                                          threadmgr as UnsafeNativeMethods.ITfCompartmentMgr);
                _compartmentTable[guid] = compartment;
            }

            return(compartment);
        }
        internal TextServicesCompartment GetThreadCompartment(Guid guid) 
        {
            // No TextServices are installed so that the compartment won't work. 
            if (!TextServicesLoader.ServicesInstalled ||
                TextServicesContext.DispatcherCurrent == null)
                return null;
 
            UnsafeNativeMethods.ITfThreadMgr threadmgr = TextServicesContext.DispatcherCurrent.ThreadManager;
            if (threadmgr == null) 
                return null; 

            if (_compartmentTable == null) 
                _compartmentTable = new Hashtable();

            TextServicesCompartment compartment;
 
            compartment = _compartmentTable[guid] as TextServicesCompartment;
            if (compartment == null) 
            { 
                compartment = new TextServicesCompartment(guid,
                                                          threadmgr as UnsafeNativeMethods.ITfCompartmentMgr); 
                _compartmentTable[guid] = compartment;
            }

            return compartment; 
        }
        internal TextServicesCompartment GetGlobalCompartment(Guid guid)
        { 
            // No TextServices are installed so that the compartment won't work. 
            if (!TextServicesLoader.ServicesInstalled ||
                TextServicesContext.DispatcherCurrent == null) 
                return null;

            if (_globalcompartmentTable == null)
                _globalcompartmentTable = new Hashtable(); 

            if (_globalcompartmentmanager == null) 
            { 
                UnsafeNativeMethods.ITfThreadMgr threadmgr = TextServicesContext.DispatcherCurrent.ThreadManager;
 
                if (threadmgr == null)
                    return null;

                threadmgr.GetGlobalCompartment(out _globalcompartmentmanager); 
            }
 
            TextServicesCompartment compartment = null; 

            compartment = _globalcompartmentTable[guid] as TextServicesCompartment; 
            if (compartment == null)
            {
                compartment = new TextServicesCompartment(guid, _globalcompartmentmanager);
                _globalcompartmentTable[guid] = compartment; 
            }
 
            return compartment; 
        }