kernel32: Renamed the kernel directory to kernel32.
[wine/multimedia.git] / dlls / kernel32 / actctx.c
blob9bb698f6e910ea87bf1429b4918df67a939244b1
1 /*
2 * Activation contexts
4 * Copyright 2004 Jon Griffiths
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.
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.
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
21 #include "config.h"
22 #include "wine/port.h"
24 #include <stdarg.h>
25 #include "windef.h"
26 #include "winbase.h"
27 #include "winerror.h"
28 #include "winnls.h"
29 #include "wine/debug.h"
31 WINE_DEFAULT_DEBUG_CHANNEL(actctx);
34 #define ACTCTX_FLAGS_ALL (\
35 ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID |\
36 ACTCTX_FLAG_LANGID_VALID |\
37 ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID |\
38 ACTCTX_FLAG_RESOURCE_NAME_VALID |\
39 ACTCTX_FLAG_SET_PROCESS_DEFAULT |\
40 ACTCTX_FLAG_APPLICATION_NAME_VALID |\
41 ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF |\
42 ACTCTX_FLAG_HMODULE_VALID )
44 #define ACTCTX_FAKE_HANDLE ((HANDLE) 0xf00baa)
45 #define ACTCTX_FAKE_COOKIE ((ULONG_PTR) 0xf00bad)
47 /***********************************************************************
48 * CreateActCtxA (KERNEL32.@)
50 * Create an activation context.
52 HANDLE WINAPI CreateActCtxA(PCACTCTXA pActCtx)
54 FIXME("%p %08lx\n", pActCtx, pActCtx ? pActCtx->dwFlags : 0);
56 if (!pActCtx)
57 return INVALID_HANDLE_VALUE;
58 if (pActCtx->cbSize != sizeof *pActCtx)
59 return INVALID_HANDLE_VALUE;
60 if (pActCtx->dwFlags & ~ACTCTX_FLAGS_ALL)
61 return INVALID_HANDLE_VALUE;
62 return ACTCTX_FAKE_HANDLE;
65 /***********************************************************************
66 * CreateActCtxW (KERNEL32.@)
68 * Create an activation context.
70 HANDLE WINAPI CreateActCtxW(PCACTCTXW pActCtx)
72 FIXME("%p %08lx\n", pActCtx, pActCtx ? pActCtx->dwFlags : 0);
74 if (!pActCtx)
75 return INVALID_HANDLE_VALUE;
76 if (pActCtx->cbSize != sizeof *pActCtx)
77 return INVALID_HANDLE_VALUE;
78 if (pActCtx->dwFlags & ~ACTCTX_FLAGS_ALL)
79 return INVALID_HANDLE_VALUE;
80 return ACTCTX_FAKE_HANDLE;
83 /***********************************************************************
84 * ActivateActCtx (KERNEL32.@)
86 * Activate an activation context.
88 BOOL WINAPI ActivateActCtx(HANDLE hActCtx, ULONG_PTR *ulCookie)
90 FIXME("%p %p\n", hActCtx, ulCookie );
91 if (ulCookie)
92 *ulCookie = ACTCTX_FAKE_COOKIE;
93 return TRUE;
96 /***********************************************************************
97 * DeactivateActCtx (KERNEL32.@)
99 * Deactivate an activation context.
101 BOOL WINAPI DeactivateActCtx(DWORD dwFlags, ULONG_PTR ulCookie)
103 FIXME("%08lx %08lx\n", dwFlags, ulCookie);
104 if (ulCookie != ACTCTX_FAKE_COOKIE)
105 return FALSE;
106 return TRUE;
109 /***********************************************************************
110 * GetCurrentActCtx (KERNEL32.@)
112 * Get the current activation context.
114 BOOL WINAPI GetCurrentActCtx(HANDLE* phActCtx)
116 FIXME("%p\n", phActCtx);
117 *phActCtx = ACTCTX_FAKE_HANDLE;
118 return TRUE;
121 /***********************************************************************
122 * AddRefActCtx (KERNEL32.@)
124 * Add a reference to an activation context.
126 void WINAPI AddRefActCtx(HANDLE hActCtx)
128 FIXME("%p\n", hActCtx);
131 /***********************************************************************
132 * ReleaseActCtx (KERNEL32.@)
134 * Release a reference to an activation context.
136 void WINAPI ReleaseActCtx(HANDLE hActCtx)
138 FIXME("%p\n", hActCtx);
141 /***********************************************************************
142 * ZombifyActCtx (KERNEL32.@)
144 * Release a reference to an activation context.
146 BOOL WINAPI ZombifyActCtx(HANDLE hActCtx)
148 FIXME("%p\n", hActCtx);
149 if (hActCtx != ACTCTX_FAKE_HANDLE)
150 return FALSE;
151 return TRUE;
154 /***********************************************************************
155 * FindActCtxSectionStringA (KERNEL32.@)
157 * Find information about a GUID in an activation context.
159 BOOL WINAPI FindActCtxSectionStringA(DWORD dwFlags, const GUID* lpExtGuid,
160 ULONG ulId, LPCSTR lpSearchStr,
161 PACTCTX_SECTION_KEYED_DATA pInfo)
163 FIXME("%08lx %s %lu %s %p\n", dwFlags, debugstr_guid(lpExtGuid),
164 ulId, debugstr_a(lpSearchStr), pInfo);
165 SetLastError( ERROR_CALL_NOT_IMPLEMENTED);
166 return FALSE;
169 /***********************************************************************
170 * FindActCtxSectionStringW (KERNEL32.@)
172 * Find information about a GUID in an activation context.
174 BOOL WINAPI FindActCtxSectionStringW(DWORD dwFlags, const GUID* lpExtGuid,
175 ULONG ulId, LPCWSTR lpSearchStr,
176 PACTCTX_SECTION_KEYED_DATA pInfo)
178 FIXME("%08lx %s %lu %s %p\n", dwFlags, debugstr_guid(lpExtGuid),
179 ulId, debugstr_w(lpSearchStr), pInfo);
180 SetLastError( ERROR_CALL_NOT_IMPLEMENTED);
181 return FALSE;
184 /***********************************************************************
185 * FindActCtxSectionGuid (KERNEL32.@)
187 * Find information about a GUID in an activation context.
189 BOOL WINAPI FindActCtxSectionGuid(DWORD dwFlags, const GUID* lpExtGuid,
190 ULONG ulId, const GUID* lpSearchGuid,
191 PACTCTX_SECTION_KEYED_DATA pInfo)
193 FIXME("%08lx %s %lu %s %p\n", dwFlags, debugstr_guid(lpExtGuid),
194 ulId, debugstr_guid(lpSearchGuid), pInfo);
195 SetLastError( ERROR_CALL_NOT_IMPLEMENTED);
196 return FALSE;
199 /***********************************************************************
200 * QueryActCtxW (KERNEL32.@)
202 * Get information about an activation context.
204 BOOL WINAPI QueryActCtxW(DWORD dwFlags, HANDLE hActCtx, PVOID pvSubInst,
205 ULONG ulClass, PVOID pvBuff, SIZE_T cbBuff,
206 SIZE_T *pcbLen)
208 FIXME("%08lx %p %p %lu %p %ld %p\n", dwFlags, hActCtx,
209 pvSubInst, ulClass, pvBuff, cbBuff, pcbLen);
210 /* this makes Adobe Photoshop 7.0 happy */
211 SetLastError( ERROR_CALL_NOT_IMPLEMENTED);
212 return FALSE;