Commit b4a228f4 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

mshtml: Added nsIDirectoryServiceProvider2 implementation.

parent 87fabd10
...@@ -93,7 +93,7 @@ nsresult create_nsfile(const PRUnichar *path, nsIFile **ret) ...@@ -93,7 +93,7 @@ nsresult create_nsfile(const PRUnichar *path, nsIFile **ret)
return nsres; return nsres;
} }
static nsresult NSAPI nsDirectoryServiceProvider_QueryInterface(nsIDirectoryServiceProvider *iface, static nsresult NSAPI nsDirectoryServiceProvider2_QueryInterface(nsIDirectoryServiceProvider2 *iface,
nsIIDRef riid, void **result) nsIIDRef riid, void **result)
{ {
if(IsEqualGUID(&IID_nsISupports, riid)) { if(IsEqualGUID(&IID_nsISupports, riid)) {
...@@ -102,6 +102,9 @@ static nsresult NSAPI nsDirectoryServiceProvider_QueryInterface(nsIDirectoryServ ...@@ -102,6 +102,9 @@ static nsresult NSAPI nsDirectoryServiceProvider_QueryInterface(nsIDirectoryServ
}else if(IsEqualGUID(&IID_nsIDirectoryServiceProvider, riid)) { }else if(IsEqualGUID(&IID_nsIDirectoryServiceProvider, riid)) {
TRACE("(IID_nsIDirectoryServiceProvider %p)\n", result); TRACE("(IID_nsIDirectoryServiceProvider %p)\n", result);
*result = iface; *result = iface;
}else if(IsEqualGUID(&IID_nsIDirectoryServiceProvider2, riid)) {
TRACE("(IID_nsIDirectoryServiceProvider2 %p)\n", result);
*result = iface;
}else { }else {
WARN("(%s %p)\n", debugstr_guid(riid), result); WARN("(%s %p)\n", debugstr_guid(riid), result);
*result = NULL; *result = NULL;
...@@ -112,12 +115,12 @@ static nsresult NSAPI nsDirectoryServiceProvider_QueryInterface(nsIDirectoryServ ...@@ -112,12 +115,12 @@ static nsresult NSAPI nsDirectoryServiceProvider_QueryInterface(nsIDirectoryServ
return NS_OK; return NS_OK;
} }
static nsrefcnt NSAPI nsDirectoryServiceProvider_AddRef(nsIDirectoryServiceProvider *iface) static nsrefcnt NSAPI nsDirectoryServiceProvider2_AddRef(nsIDirectoryServiceProvider2 *iface)
{ {
return 2; return 2;
} }
static nsrefcnt NSAPI nsDirectoryServiceProvider_Release(nsIDirectoryServiceProvider *iface) static nsrefcnt NSAPI nsDirectoryServiceProvider2_Release(nsIDirectoryServiceProvider2 *iface)
{ {
return 1; return 1;
} }
...@@ -157,7 +160,7 @@ static nsresult create_profile_directory(void) ...@@ -157,7 +160,7 @@ static nsresult create_profile_directory(void)
return nsres; return nsres;
} }
static nsresult NSAPI nsDirectoryServiceProvider_GetFile(nsIDirectoryServiceProvider *iface, static nsresult NSAPI nsDirectoryServiceProvider2_GetFile(nsIDirectoryServiceProvider2 *iface,
const char *prop, cpp_bool *persistent, nsIFile **_retval) const char *prop, cpp_bool *persistent, nsIFile **_retval)
{ {
TRACE("(%s %p %p)\n", debugstr_a(prop), persistent, _retval); TRACE("(%s %p %p)\n", debugstr_a(prop), persistent, _retval);
...@@ -177,15 +180,23 @@ static nsresult NSAPI nsDirectoryServiceProvider_GetFile(nsIDirectoryServiceProv ...@@ -177,15 +180,23 @@ static nsresult NSAPI nsDirectoryServiceProvider_GetFile(nsIDirectoryServiceProv
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
} }
static const nsIDirectoryServiceProviderVtbl nsDirectoryServiceProviderVtbl = { static nsresult NSAPI nsDirectoryServiceProvider2_GetFiles(nsIDirectoryServiceProvider2 *iface,
nsDirectoryServiceProvider_QueryInterface, const char *prop, nsISimpleEnumerator **_retval)
nsDirectoryServiceProvider_AddRef, {
nsDirectoryServiceProvider_Release, TRACE("(%s %p)\n", debugstr_a(prop), _retval);
nsDirectoryServiceProvider_GetFile return NS_ERROR_FAILURE;
}
static const nsIDirectoryServiceProvider2Vtbl nsDirectoryServiceProvider2Vtbl = {
nsDirectoryServiceProvider2_QueryInterface,
nsDirectoryServiceProvider2_AddRef,
nsDirectoryServiceProvider2_Release,
nsDirectoryServiceProvider2_GetFile,
nsDirectoryServiceProvider2_GetFiles
}; };
static nsIDirectoryServiceProvider nsDirectoryServiceProvider = static nsIDirectoryServiceProvider2 nsDirectoryServiceProvider2 =
{ &nsDirectoryServiceProviderVtbl }; { &nsDirectoryServiceProvider2Vtbl };
static LRESULT WINAPI nsembed_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) static LRESULT WINAPI nsembed_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{ {
...@@ -544,7 +555,7 @@ static BOOL init_xpcom(const PRUnichar *gre_path) ...@@ -544,7 +555,7 @@ static BOOL init_xpcom(const PRUnichar *gre_path)
return FALSE; return FALSE;
} }
nsres = NS_InitXPCOM2(&pServMgr, gre_dir, &nsDirectoryServiceProvider); nsres = NS_InitXPCOM2(&pServMgr, gre_dir, (nsIDirectoryServiceProvider*)&nsDirectoryServiceProvider2);
if(NS_FAILED(nsres)) { if(NS_FAILED(nsres)) {
ERR("NS_InitXPCOM2 failed: %08x\n", nsres); ERR("NS_InitXPCOM2 failed: %08x\n", nsres);
FreeLibrary(xul_handle); FreeLibrary(xul_handle);
......
...@@ -2517,6 +2517,16 @@ interface nsIDirectoryServiceProvider : nsISupports ...@@ -2517,6 +2517,16 @@ interface nsIDirectoryServiceProvider : nsISupports
[ [
object, object,
uuid(2f977d4b-5485-11d4-87e2-0010a4e75ef2),
local
]
interface nsIDirectoryServiceProvider2 : nsIDirectoryServiceProvider
{
nsresult GetFiles(const char *prop, nsISimpleEnumerator **_retval);
}
[
object,
uuid(15fd6940-8ea7-11d3-93ad-00104ba0fd40), uuid(15fd6940-8ea7-11d3-93ad-00104ba0fd40),
local local
] ]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment