~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Wine Cross Reference
wine/dlls/objsel/objsel.c

Version: ~ [ wine-1.5.30 ] ~ [ wine-1.5.29 ] ~ [ wine-1.5.28 ] ~ [ wine-1.5.27 ] ~ [ wine-1.5.26 ] ~ [ wine-1.5.25 ] ~ [ wine-1.5.24 ] ~ [ wine-1.5.23 ] ~ [ wine-1.5.22 ] ~ [ wine-1.5.21 ] ~ [ wine-1.5.20 ] ~ [ wine-1.5.19 ] ~ [ wine-1.5.18 ] ~ [ wine-1.5.17 ] ~ [ wine-1.5.16 ] ~ [ wine-1.5.15 ] ~ [ wine-1.5.14 ] ~ [ wine-1.5.13 ] ~ [ wine-1.5.12 ] ~ [ wine-1.5.11 ] ~ [ wine-1.5.10 ] ~ [ wine-1.5.9 ] ~ [ wine-1.5.8 ] ~ [ wine-1.5.7 ] ~ [ wine-1.4.1 ] ~ [ wine-1.5.6 ] ~ [ wine-1.5.5 ] ~ [ wine-1.5.4 ] ~ [ wine-1.5.3 ] ~ [ wine-1.5.2 ] ~ [ wine-1.5.1 ] ~ [ wine-1.5.0 ] ~ [ wine-1.4 ] ~ [ wine-1.4-rc6 ] ~ [ wine-1.4-rc5 ] ~ [ wine-1.4-rc4 ] ~ [ wine-1.4-rc3 ] ~ [ wine-1.4-rc2 ] ~ [ wine-1.4-rc1 ] ~ [ wine-1.3.37 ] ~ [ wine-1.3.36 ] ~ [ wine-1.3.35 ] ~ [ wine-1.3.34 ] ~ [ wine-1.3.33 ] ~ [ wine-1.3.32 ] ~ [ wine-1.3.31 ] ~ [ wine-1.3.30 ] ~ [ wine-1.3.29 ] ~ [ wine-1.3.28 ] ~ [ wine-1.3.27 ] ~ [ wine-1.3.26 ] ~ [ wine-1.3.25 ] ~ [ wine-1.3.24 ] ~ [ wine-1.3.23 ] ~ [ wine-1.3.22 ] ~ [ wine-1.3.21 ] ~ [ wine-1.3.20 ] ~ [ wine-1.3.19 ] ~ [ wine-1.3.18 ] ~ [ wine-1.2.3 ] ~ [ wine-1.3.17 ] ~ [ wine-1.3.16 ] ~ [ wine-1.3.15 ] ~ [ wine-1.3.14 ] ~ [ wine-1.3.13 ] ~ [ wine-1.3.12 ] ~ [ wine-1.3.11 ] ~ [ wine-1.3.10 ] ~ [ wine-1.3.9 ] ~ [ wine-1.2.2 ] ~ [ wine-1.3.8 ] ~ [ wine-1.3.7 ] ~ [ wine-1.3.6 ] ~ [ wine-1.3.5 ] ~ [ wine-1.2.1 ] ~ [ wine-1.3.4 ] ~ [ wine-1.3.3 ] ~ [ wine-1.3.2 ] ~ [ wine-1.3.1 ] ~ [ wine-1.3.0 ] ~ [ wine-1.2 ] ~ [ wine-1.2-rc7 ] ~ [ wine-1.2-rc6 ] ~ [ wine-1.2-rc5 ] ~ [ wine-1.2-rc4 ] ~ [ wine-1.2-rc3 ] ~ [ wine-1.2-rc2 ] ~ [ wine-1.2-rc1 ] ~ [ wine-1.1.44 ] ~ [ wine-1.1.43 ] ~ [ wine-1.1.42 ] ~ [ wine-1.1.41 ] ~ [ wine-1.1.40 ] ~ [ wine-1.1.39 ] ~ [ wine-1.1.38 ] ~ [ wine-1.1.37 ] ~ [ wine-1.1.36 ] ~ [ wine-1.1.35 ] ~ [ wine-1.1.34 ] ~ [ wine-1.1.33 ] ~ [ wine-1.1.32 ] ~ [ wine-1.1.31 ] ~ [ wine-1.1.30 ] ~ [ wine-1.1.29 ] ~ [ wine-1.1.28 ] ~ [ wine-1.1.27 ] ~ [ wine-1.1.26 ] ~ [ wine-1.1.25 ] ~ [ wine-1.1.24 ] ~ [ wine-1.1.23 ] ~ [ wine-1.1.22 ] ~ [ wine-1.1.21 ] ~ [ wine-1.1.20 ] ~ [ wine-1.1.19 ] ~ [ wine-1.1.18 ] ~ [ wine-1.1.17 ] ~ [ wine-1.1.16 ] ~ [ wine-1.1.15 ] ~ [ wine-1.1.14 ] ~ [ wine-1.1.13 ] ~ [ wine-1.1.12 ] ~ [ wine-1.1.11 ] ~ [ wine-1.1.10 ] ~ [ wine-1.1.9 ] ~ [ wine-1.1.8 ] ~ [ wine-1.1.7 ] ~ [ wine-1.0.1 ] ~ [ wine-1.1.6 ] ~ [ wine-1.1.5 ] ~ [ wine-1.1.4 ] ~ [ wine-1.1.3 ] ~ [ wine-1.1.2 ] ~ [ wine-1.1.1 ] ~ [ wine-1.1.0 ] ~ [ wine-1.0 ] ~

  1 /*
  2  * Object Picker Dialog
  3  *
  4  * Copyright 2005 Thomas Weidenmueller <w3seek@reactos.com>
  5  *
  6  * This library is free software; you can redistribute it and/or
  7  * modify it under the terms of the GNU Lesser General Public
  8  * License as published by the Free Software Foundation; either
  9  * version 2.1 of the License, or (at your option) any later version.
 10  *
 11  * This library is distributed in the hope that it will be useful,
 12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 14  * Lesser General Public License for more details.
 15  *
 16  * You should have received a copy of the GNU Lesser General Public
 17  * License along with this library; if not, write to the Free Software
 18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 19  */
 20 
 21 #include "objsel_private.h"
 22 
 23 #include "wine/debug.h"
 24 
 25 WINE_DEFAULT_DEBUG_CHANNEL(objsel);
 26 
 27 LONG dll_refs = 0;
 28 static HINSTANCE hInstance;
 29 
 30 /***********************************************************************
 31  *              DllEntryPoint
 32  */
 33 BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
 34 {
 35     switch(fdwReason)
 36     {
 37         case DLL_PROCESS_ATTACH:
 38             hInstance = hinstDLL;
 39             DisableThreadLibraryCalls(hInstance);
 40             break;
 41     }
 42     return TRUE;
 43 }
 44 
 45 
 46 /***********************************************************************
 47  *              DllGetClassObject (OBJSEL.@)
 48  */
 49 HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid, LPVOID *ppv)
 50 {
 51     TRACE("(%s, %s, %p)\n", debugstr_guid(rclsid), debugstr_guid(iid), ppv);
 52 
 53     *ppv = NULL;
 54 
 55     if (IsEqualGUID(rclsid, &CLSID_DsObjectPicker))
 56         return IClassFactory_QueryInterface((IClassFactory*)&OBJSEL_ClassFactory, iid, ppv);
 57 
 58     FIXME("\n\tCLSID:\t%s,\n\tIID:\t%s\n",debugstr_guid(rclsid),debugstr_guid(iid));
 59     return CLASS_E_CLASSNOTAVAILABLE;
 60 }
 61 
 62 
 63 /***********************************************************************
 64  *              DllCanUnloadNow (OBJSEL.@)
 65  */
 66 HRESULT WINAPI DllCanUnloadNow(void)
 67 {
 68     return dll_refs != 0 ? S_FALSE : S_OK;
 69 }
 70 
 71 
 72 /**********************************************************************
 73  * OBJSEL_IDsObjectPicker_Destroy (also IUnknown)
 74  */
 75 static VOID OBJSEL_IDsObjectPicker_Destroy(IDsObjectPickerImpl *This)
 76 {
 77     HeapFree(GetProcessHeap(),
 78              0,
 79              This);
 80 }
 81 
 82 
 83 /**********************************************************************
 84  * OBJSEL_IDsObjectPicker_AddRef (also IUnknown)
 85  */
 86 static ULONG WINAPI OBJSEL_IDsObjectPicker_AddRef(IDsObjectPicker * iface)
 87 {
 88     IDsObjectPickerImpl *This = (IDsObjectPickerImpl *)iface;
 89     ULONG ref;
 90 
 91     TRACE("\n");
 92 
 93     if (This == NULL) return E_POINTER;
 94 
 95     ref = InterlockedIncrement(&This->ref);
 96 
 97     if (ref == 1)
 98     {
 99         InterlockedIncrement(&dll_refs);
100     }
101 
102     return ref;
103 }
104 
105 
106 /**********************************************************************
107  * OBJSEL_IDsObjectPicker_Release (also IUnknown)
108  */
109 static ULONG WINAPI OBJSEL_IDsObjectPicker_Release(IDsObjectPicker * iface)
110 {
111     IDsObjectPickerImpl *This = (IDsObjectPickerImpl *)iface;
112     ULONG ref;
113 
114     TRACE("\n");
115 
116     if (This == NULL) return E_POINTER;
117 
118     ref = InterlockedDecrement(&This->ref);
119 
120     if (ref == 0)
121     {
122         InterlockedDecrement(&dll_refs);
123         OBJSEL_IDsObjectPicker_Destroy(This);
124     }
125 
126     return ref;
127 }
128 
129 
130 /**********************************************************************
131  * OBJSEL_IDsObjectPicker_QueryInterface (also IUnknown)
132  */
133 static HRESULT WINAPI OBJSEL_IDsObjectPicker_QueryInterface(
134     IDsObjectPicker * iface,
135     REFIID riid,
136     LPVOID *ppvObj)
137 {
138     TRACE("\n\tIID:\t%s\n",debugstr_guid(riid));
139 
140     if (ppvObj == NULL) return E_POINTER;
141 
142     if (IsEqualGUID(riid, &IID_IUnknown) ||
143         IsEqualGUID(riid, &IID_IDsObjectPicker))
144     {
145         *ppvObj = iface;
146         OBJSEL_IDsObjectPicker_AddRef(iface);
147         return S_OK;
148     }
149 
150     FIXME("- no interface\n\tIID:\t%s\n", debugstr_guid(riid));
151     return E_NOINTERFACE;
152 }
153 
154 
155 /**********************************************************************
156  * OBJSEL_IDsObjectPicker_Initialize
157  */
158 static HRESULT WINAPI OBJSEL_IDsObjectPicker_Initialize(
159     IDsObjectPicker * iface,
160     PDSOP_INIT_INFO pInitInfo)
161 {
162     FIXME("stub!\n");
163     return S_OK;
164 }
165 
166 
167 /**********************************************************************
168  * OBJSEL_IDsObjectPicker_InvokeDialog
169  */
170 static HRESULT WINAPI OBJSEL_IDsObjectPicker_InvokeDialog(
171     IDsObjectPicker * iface,
172     HWND hwndParent,
173     IDataObject** ppdoSelections)
174 {
175     FIXME("stub!\n");
176     return S_FALSE;
177 }
178 
179 
180 /**********************************************************************
181  * IDsObjectPicker_Vtbl
182  */
183 static IDsObjectPickerVtbl IDsObjectPicker_Vtbl =
184 {
185     OBJSEL_IDsObjectPicker_QueryInterface,
186     OBJSEL_IDsObjectPicker_AddRef,
187     OBJSEL_IDsObjectPicker_Release,
188     OBJSEL_IDsObjectPicker_Initialize,
189     OBJSEL_IDsObjectPicker_InvokeDialog
190 };
191 
192 
193 /**********************************************************************
194  * OBJSEL_IDsObjectPicker_Create
195  */
196 HRESULT WINAPI OBJSEL_IDsObjectPicker_Create(LPVOID *ppvObj)
197 {
198     IDsObjectPickerImpl *Instance = HeapAlloc(GetProcessHeap(),
199                                               HEAP_ZERO_MEMORY,
200                                               sizeof(IDsObjectPickerImpl));
201     if (Instance != NULL)
202     {
203         Instance->lpVtbl = &IDsObjectPicker_Vtbl;
204         OBJSEL_IDsObjectPicker_AddRef((IDsObjectPicker *)Instance);
205         
206         *ppvObj = Instance;
207         return S_OK;
208     }
209     else
210         return E_OUTOFMEMORY;
211 }
212 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.