Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
11abd08b
Commit
11abd08b
authored
Jan 13, 2012
by
Piotr Caban
Committed by
Alexandre Julliard
Jan 13, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
urlmon: Added CUri ClassFactory implementation.
parent
1c92d202
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
43 additions
and
21 deletions
+43
-21
uri.c
dlls/urlmon/uri.c
+27
-20
urlmon_main.c
dlls/urlmon/urlmon_main.c
+7
-1
urlmon_main.h
dlls/urlmon/urlmon_main.h
+2
-0
urlmon_urlmon.idl
dlls/urlmon/urlmon_urlmon.idl
+7
-0
No files found.
dlls/urlmon/uri.c
View file @
11abd08b
...
...
@@ -5320,16 +5320,23 @@ static const IPersistStreamVtbl PersistStreamVtbl = {
PersistStream_GetSizeMax
};
static
Uri
*
create_uri_obj
(
void
)
{
HRESULT
Uri_Construct
(
IUnknown
*
pUnkOuter
,
LPVOID
*
ppobj
)
{
Uri
*
ret
=
heap_alloc_zero
(
sizeof
(
Uri
));
if
(
ret
)
{
ret
->
IUri_iface
.
lpVtbl
=
&
UriVtbl
;
ret
->
IUriBuilderFactory_iface
.
lpVtbl
=
&
UriBuilderFactoryVtbl
;
ret
->
IPersistStream_iface
.
lpVtbl
=
&
PersistStreamVtbl
;
ret
->
ref
=
1
;
}
return
ret
;
TRACE
(
"(%p %p)
\n
"
,
pUnkOuter
,
ppobj
);
*
ppobj
=
ret
;
if
(
!
ret
)
return
E_OUTOFMEMORY
;
ret
->
IUri_iface
.
lpVtbl
=
&
UriVtbl
;
ret
->
IUriBuilderFactory_iface
.
lpVtbl
=
&
UriBuilderFactoryVtbl
;
ret
->
IPersistStream_iface
.
lpVtbl
=
&
PersistStreamVtbl
;
ret
->
ref
=
1
;
*
ppobj
=
&
ret
->
IUri_iface
;
return
S_OK
;
}
/***********************************************************************
...
...
@@ -5387,10 +5394,10 @@ HRESULT WINAPI CreateUri(LPCWSTR pwzURI, DWORD dwFlags, DWORD_PTR dwReserved, IU
if
(
dwFlags
&
~
supported_flags
)
FIXME
(
"Ignoring unsupported flag(s) %x
\n
"
,
dwFlags
&
~
supported_flags
);
ret
=
create_uri_obj
(
);
if
(
!
ret
)
{
hr
=
Uri_Construct
(
NULL
,
(
void
**
)
&
ret
);
if
(
FAILED
(
hr
)
)
{
*
ppURI
=
NULL
;
return
E_OUTOFMEMORY
;
return
hr
;
}
/* Explicitly set the default flags if it doesn't cause a flag conflict. */
...
...
@@ -5547,10 +5554,10 @@ static HRESULT build_uri(const UriBuilder *builder, IUri **uri, DWORD create_fla
return
hr
;
}
ret
=
create_uri_obj
(
);
if
(
!
ret
)
{
hr
=
Uri_Construct
(
NULL
,
(
void
**
)
&
ret
);
if
(
FAILED
(
hr
)
)
{
*
uri
=
NULL
;
return
E_OUTOFMEMORY
;
return
hr
;
}
hr
=
generate_uri
(
builder
,
&
data
,
ret
,
create_flags
);
...
...
@@ -6115,10 +6122,10 @@ static HRESULT combine_uri(Uri *base, Uri *relative, DWORD flags, IUri **result,
parse_uri
(
&
data
,
0
);
ret
=
create_uri_obj
(
);
if
(
!
ret
)
{
hr
=
Uri_Construct
(
NULL
,
(
void
**
)
&
ret
);
if
(
FAILED
(
hr
)
)
{
*
result
=
NULL
;
return
E_OUTOFMEMORY
;
return
hr
;
}
if
(
extras
&
COMBINE_URI_FORCE_FLAG_USE
)
{
...
...
@@ -6319,12 +6326,12 @@ static HRESULT combine_uri(Uri *base, Uri *relative, DWORD flags, IUri **result,
generate_raw_uri
(
&
data
,
data
.
uri
,
raw_flags
);
ret
=
create_uri_obj
(
);
if
(
!
ret
)
{
hr
=
Uri_Construct
(
NULL
,
(
void
**
)
&
ret
);
if
(
FAILED
(
hr
)
)
{
SysFreeString
(
data
.
uri
);
heap_free
(
path
);
*
result
=
NULL
;
return
E_OUTOFMEMORY
;
return
hr
;
}
if
(
flags
&
URL_DONT_SIMPLIFY
)
...
...
dlls/urlmon/urlmon_main.c
View file @
11abd08b
...
...
@@ -27,6 +27,7 @@
#define NO_SHLWAPI_REG
#include "shlwapi.h"
#include "advpub.h"
#include "initguid.h"
#include "wine/debug.h"
...
...
@@ -34,6 +35,8 @@
WINE_DEFAULT_DEBUG_CHANNEL
(
urlmon
);
DEFINE_GUID
(
CLSID_CUri
,
0xDF2FCE13
,
0x25EC
,
0x45BB
,
0x9D
,
0x4C
,
0xCE
,
0xCD
,
0x47
,
0xC2
,
0x43
,
0x0C
);
LONG
URLMON_refCount
=
0
;
static
HMODULE
hCabinet
=
NULL
;
...
...
@@ -292,6 +295,8 @@ static ClassFactory StdURLMonikerCF =
{
{
&
ClassFactoryVtbl
},
StdURLMoniker_Construct
};
static
ClassFactory
MimeFilterCF
=
{
{
&
ClassFactoryVtbl
},
MimeFilter_Construct
};
static
ClassFactory
CUriCF
=
{
{
&
ClassFactoryVtbl
},
Uri_Construct
};
struct
object_creation_info
{
...
...
@@ -318,7 +323,8 @@ static const struct object_creation_info object_creation[] =
{
&
CLSID_InternetSecurityManager
,
&
SecurityManagerCF
.
IClassFactory_iface
,
NULL
},
{
&
CLSID_InternetZoneManager
,
&
ZoneManagerCF
.
IClassFactory_iface
,
NULL
},
{
&
CLSID_StdURLMoniker
,
&
StdURLMonikerCF
.
IClassFactory_iface
,
NULL
},
{
&
CLSID_DeCompMimeFilter
,
&
MimeFilterCF
.
IClassFactory_iface
,
NULL
}
{
&
CLSID_DeCompMimeFilter
,
&
MimeFilterCF
.
IClassFactory_iface
,
NULL
},
{
&
CLSID_CUri
,
&
CUriCF
.
IClassFactory_iface
,
NULL
}
};
static
void
init_session
(
BOOL
init
)
...
...
dlls/urlmon/urlmon_main.h
View file @
11abd08b
...
...
@@ -47,6 +47,7 @@ extern HRESULT FtpProtocol_Construct(IUnknown *pUnkOuter, LPVOID *ppobj) DECLSPE
extern
HRESULT
GopherProtocol_Construct
(
IUnknown
*
pUnkOuter
,
LPVOID
*
ppobj
)
DECLSPEC_HIDDEN
;
extern
HRESULT
MkProtocol_Construct
(
IUnknown
*
pUnkOuter
,
LPVOID
*
ppobj
)
DECLSPEC_HIDDEN
;
extern
HRESULT
MimeFilter_Construct
(
IUnknown
*
pUnkOuter
,
LPVOID
*
ppobj
)
DECLSPEC_HIDDEN
;
extern
HRESULT
Uri_Construct
(
IUnknown
*
pUnkOuter
,
LPVOID
*
ppobj
)
DECLSPEC_HIDDEN
;
extern
BOOL
WINAPI
URLMON_DllMain
(
HINSTANCE
hinstDLL
,
DWORD
fdwReason
,
LPVOID
lpvReserved
)
DECLSPEC_HIDDEN
;
extern
HRESULT
WINAPI
URLMON_DllGetClassObject
(
REFCLSID
rclsid
,
REFIID
iid
,
LPVOID
*
ppv
)
DECLSPEC_HIDDEN
;
...
...
@@ -54,6 +55,7 @@ extern HRESULT WINAPI URLMON_DllRegisterServer(void) DECLSPEC_HIDDEN;
extern
HRESULT
WINAPI
URLMON_DllUnregisterServer
(
void
)
DECLSPEC_HIDDEN
;
extern
GUID
const
CLSID_PSFactoryBuffer
DECLSPEC_HIDDEN
;
extern
GUID
const
CLSID_CUri
DECLSPEC_HIDDEN
;
/**********************************************************************
* Dll lifetime tracking declaration for urlmon.dll
...
...
dlls/urlmon/urlmon_urlmon.idl
View file @
11abd08b
...
...
@@ -101,3 +101,10 @@ coclass PSFactoryBuffer { interface IPSFactoryBuffer; }
uuid
(
8
f6b0360
-
b80d
-
11
d0
-
a9b3
-
006097942311
)
]
coclass
DeCompMimeFilter
{
interface
IInternetProtocol
; interface IInternetProtocolSink; }
[
helpstring
(
"CUri"
),
threading
(
apartment
),
uuid
(
df2fce13
-
25
ec
-
45b
b
-
9
d4c
-
cecd47c2430c
)
]
coclass
CUri
{
interface
IUri
; }
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment