Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
10ee7b36
Commit
10ee7b36
authored
May 18, 2005
by
Robert Shearman
Committed by
Alexandre Julliard
May 18, 2005
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement IROTData::GetComparisonData for file & item monikers.
parent
b3e0a032
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
47 additions
and
12 deletions
+47
-12
filemoniker.c
dlls/ole32/filemoniker.c
+20
-7
itemmoniker.c
dlls/ole32/itemmoniker.c
+27
-5
No files found.
dlls/ole32/filemoniker.c
View file @
10ee7b36
...
...
@@ -59,9 +59,6 @@ typedef struct FileMonikerImpl{
}
FileMonikerImpl
;
/* IROTData prototype function */
static
HRESULT
WINAPI
FileMonikerROTDataImpl_GetComparaisonData
(
IROTData
*
iface
,
BYTE
*
pbData
,
ULONG
cbMax
,
ULONG
*
pcbData
);
/* Local function used by filemoniker implementation */
static
HRESULT
WINAPI
FileMonikerImpl_Construct
(
FileMonikerImpl
*
iface
,
LPCOLESTR
lpszPathName
);
static
HRESULT
WINAPI
FileMonikerImpl_Destroy
(
FileMonikerImpl
*
iface
);
...
...
@@ -1165,11 +1162,27 @@ FileMonikerROTDataImpl_Release(IROTData* iface)
* FileMonikerIROTData_GetComparaisonData
*/
static
HRESULT
WINAPI
FileMonikerROTDataImpl_GetCompar
a
isonData
(
IROTData
*
iface
,
BYTE
*
pbData
,
FileMonikerROTDataImpl_GetComparisonData
(
IROTData
*
iface
,
BYTE
*
pbData
,
ULONG
cbMax
,
ULONG
*
pcbData
)
{
FIXME
(
"(),stub!
\n
"
);
return
E_NOTIMPL
;
ICOM_THIS_From_IROTData
(
IMoniker
,
iface
);
FileMonikerImpl
*
This1
=
(
FileMonikerImpl
*
)
This
;
int
len
=
(
strlenW
(
This1
->
filePathName
)
+
1
);
int
i
;
LPWSTR
pszFileName
;
TRACE
(
"(%p, %lu, %p)
\n
"
,
pbData
,
cbMax
,
pcbData
);
*
pcbData
=
sizeof
(
CLSID
)
+
len
*
sizeof
(
WCHAR
);
if
(
cbMax
<
*
pcbData
)
return
E_OUTOFMEMORY
;
memcpy
(
pbData
,
&
CLSID_FileMoniker
,
sizeof
(
CLSID
));
pszFileName
=
(
LPWSTR
)(
pbData
+
sizeof
(
CLSID
));
for
(
i
=
0
;
i
<
len
;
i
++
)
pszFileName
[
i
]
=
toupperW
(
This1
->
filePathName
[
i
]);
return
S_OK
;
}
/*
...
...
@@ -1209,7 +1222,7 @@ static IROTDataVtbl VT_ROTDataImpl =
FileMonikerROTDataImpl_QueryInterface
,
FileMonikerROTDataImpl_AddRef
,
FileMonikerROTDataImpl_Release
,
FileMonikerROTDataImpl_GetCompar
a
isonData
FileMonikerROTDataImpl_GetComparisonData
};
/******************************************************************************
...
...
dlls/ole32/itemmoniker.c
View file @
10ee7b36
...
...
@@ -107,7 +107,7 @@ static ULONG WINAPI ItemMonikerROTDataImpl_AddRef(IROTData* iface);
static
ULONG
WINAPI
ItemMonikerROTDataImpl_Release
(
IROTData
*
iface
);
/* IROTData prototype function */
static
HRESULT
WINAPI
ItemMonikerROTDataImpl_GetCompar
a
isonData
(
IROTData
*
iface
,
BYTE
*
pbData
,
ULONG
cbMax
,
ULONG
*
pcbData
);
static
HRESULT
WINAPI
ItemMonikerROTDataImpl_GetComparisonData
(
IROTData
*
iface
,
BYTE
*
pbData
,
ULONG
cbMax
,
ULONG
*
pcbData
);
/********************************************************************************/
/* Virtual function table for the ItemMonikerImpl class which include IPersist,*/
...
...
@@ -146,7 +146,7 @@ static IROTDataVtbl VT_ROTDataImpl =
ItemMonikerROTDataImpl_QueryInterface
,
ItemMonikerROTDataImpl_AddRef
,
ItemMonikerROTDataImpl_Release
,
ItemMonikerROTDataImpl_GetCompar
a
isonData
ItemMonikerROTDataImpl_GetComparisonData
};
/*******************************************************************************
...
...
@@ -952,13 +952,35 @@ ULONG WINAPI ItemMonikerROTDataImpl_Release(IROTData* iface)
/******************************************************************************
* ItemMonikerIROTData_GetComparaisonData
******************************************************************************/
HRESULT
WINAPI
ItemMonikerROTDataImpl_GetCompar
a
isonData
(
IROTData
*
iface
,
HRESULT
WINAPI
ItemMonikerROTDataImpl_GetComparisonData
(
IROTData
*
iface
,
BYTE
*
pbData
,
ULONG
cbMax
,
ULONG
*
pcbData
)
{
FIXME
(
"(),stub!
\n
"
);
return
E_NOTIMPL
;
ICOM_THIS_From_IROTData
(
IMoniker
,
iface
);
ItemMonikerImpl
*
This1
=
(
ItemMonikerImpl
*
)
This
;
int
len
=
(
strlenW
(
This1
->
itemName
)
+
1
);
int
i
;
LPWSTR
pszItemName
;
LPWSTR
pszItemDelimiter
;
TRACE
(
"(%p, %lu, %p)
\n
"
,
pbData
,
cbMax
,
pcbData
);
*
pcbData
=
sizeof
(
CLSID
)
+
sizeof
(
WCHAR
)
+
len
*
sizeof
(
WCHAR
);
if
(
cbMax
<
*
pcbData
)
return
E_OUTOFMEMORY
;
/* write CLSID */
memcpy
(
pbData
,
&
CLSID_ItemMoniker
,
sizeof
(
CLSID
));
/* write delimiter */
pszItemDelimiter
=
(
LPWSTR
)(
pbData
+
sizeof
(
CLSID
));
*
pszItemDelimiter
=
*
This1
->
itemDelimiter
;
/* write name */
pszItemName
=
pszItemDelimiter
+
1
;
for
(
i
=
0
;
i
<
len
;
i
++
)
pszItemName
[
i
]
=
toupperW
(
This1
->
itemName
[
i
]);
return
S_OK
;
}
/******************************************************************************
...
...
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