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
d5714dfc
Commit
d5714dfc
authored
Jun 30, 2005
by
Robert Shearman
Committed by
Alexandre Julliard
Jun 30, 2005
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement ShellDDEInit.
parent
c9802931
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
178 additions
and
8 deletions
+178
-8
Makefile.in
dlls/shell32/Makefile.in
+1
-0
dde.c
dlls/shell32/dde.c
+177
-0
shell32_main.c
dlls/shell32/shell32_main.c
+0
-8
No files found.
dlls/shell32/Makefile.in
View file @
d5714dfc
...
...
@@ -18,6 +18,7 @@ C_SRCS = \
clipboard.c
\
control.c
\
cpanelfolder.c
\
dde.c
\
dataobject.c
\
debughlp.c
\
dialogs.c
\
...
...
dlls/shell32/dde.c
0 → 100644
View file @
d5714dfc
/*
* Shell DDE Handling
*
* Copyright 2004 Robert Shearman
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "ddeml.h"
#include "shellapi.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
shell
);
/* String handles */
static
HSZ
hszProgmanTopic
;
static
HSZ
hszProgmanService
;
static
HSZ
hszAsterisk
;
static
HSZ
hszShell
;
static
HSZ
hszAppProperties
;
static
HSZ
hszFolders
;
/* DDE Instance ID */
static
DWORD
dwDDEInst
;
static
inline
BOOL
Dde_OnConnect
(
HSZ
hszTopic
,
HSZ
hszService
)
{
if
((
hszTopic
==
hszProgmanTopic
)
&&
(
hszService
==
hszProgmanService
))
return
TRUE
;
if
((
hszTopic
==
hszProgmanTopic
)
&&
(
hszService
==
hszAppProperties
))
return
TRUE
;
if
((
hszTopic
==
hszShell
)
&&
(
hszService
==
hszFolders
))
return
TRUE
;
if
((
hszTopic
==
hszShell
)
&&
(
hszService
==
hszAppProperties
))
return
TRUE
;
return
FALSE
;
}
static
inline
void
Dde_OnConnectConfirm
(
HCONV
hconv
,
HSZ
hszTopic
,
HSZ
hszService
)
{
FIXME
(
"stub
\n
"
);
}
static
inline
BOOL
Dde_OnWildConnect
(
HSZ
hszTopic
,
HSZ
hszService
)
{
FIXME
(
"stub
\n
"
);
return
FALSE
;
}
static
inline
HDDEDATA
Dde_OnRequest
(
UINT
uFmt
,
HCONV
hconv
,
HSZ
hszTopic
,
HSZ
hszItem
)
{
FIXME
(
"stub
\n
"
);
return
NULL
;
}
static
inline
DWORD
Dde_OnExecute
(
HCONV
hconv
,
HSZ
hszTopic
,
HDDEDATA
hdata
)
{
char
*
pszCommand
;
pszCommand
=
DdeAccessData
(
hdata
,
NULL
);
if
(
!
pszCommand
)
return
DDE_FNOTPROCESSED
;
FIXME
(
"stub: %s
\n
"
,
pszCommand
);
DdeUnaccessData
(
hdata
);
return
DDE_FNOTPROCESSED
;
}
static
inline
void
Dde_OnDisconnect
(
HCONV
hconv
)
{
FIXME
(
"stub
\n
"
);
}
static
HDDEDATA
CALLBACK
DdeCallback
(
UINT
uType
,
UINT
uFmt
,
HCONV
hconv
,
HSZ
hsz1
,
HSZ
hsz2
,
HDDEDATA
hdata
,
ULONG_PTR
dwData1
,
ULONG_PTR
dwData2
)
{
switch
(
uType
)
{
case
XTYP_CONNECT
:
return
(
HDDEDATA
)
Dde_OnConnect
(
hsz1
,
hsz2
);
case
XTYP_CONNECT_CONFIRM
:
Dde_OnConnectConfirm
(
hconv
,
hsz1
,
hsz2
);
return
NULL
;
case
XTYP_WILDCONNECT
:
return
(
HDDEDATA
)
Dde_OnWildConnect
(
hsz1
,
hsz2
);
case
XTYP_REQUEST
:
return
(
HDDEDATA
)
Dde_OnRequest
(
uFmt
,
hconv
,
hsz1
,
hsz2
);
case
XTYP_EXECUTE
:
return
(
HDDEDATA
)
Dde_OnExecute
(
hconv
,
hsz1
,
hdata
);
case
XTYP_DISCONNECT
:
Dde_OnDisconnect
(
hconv
);
return
NULL
;
default:
return
NULL
;
}
}
/*************************************************************************
* ShellDDEInit (SHELL32.@)
*
* Registers the Shell DDE services with the system so that applications
* can use them.
*
* PARAMS
* bInit [I] TRUE to initialize the services, FALSE to uninitalize.
*
* RETURNS
* Nothing.
*/
void
WINAPI
ShellDDEInit
(
BOOL
bInit
)
{
TRACE
(
"bInit = %s
\n
"
,
bInit
?
"TRUE"
:
"FALSE"
);
if
(
bInit
)
{
static
const
WCHAR
wszProgman
[]
=
{
'P'
,
'r'
,
'o'
,
'g'
,
'm'
,
'a'
,
'n'
,
0
};
static
const
WCHAR
wszAsterisk
[]
=
{
'*'
,
0
};
static
const
WCHAR
wszShell
[]
=
{
'S'
,
'h'
,
'e'
,
'l'
,
'l'
,
0
};
static
const
WCHAR
wszAppProperties
[]
=
{
'A'
,
'p'
,
'p'
,
'P'
,
'r'
,
'o'
,
'p'
,
'e'
,
'r'
,
't'
,
'i'
,
'e'
,
's'
,
0
};
static
const
WCHAR
wszFolders
[]
=
{
'F'
,
'o'
,
'l'
,
'd'
,
'e'
,
'r'
,
's'
,
0
};
DdeInitializeW
(
&
dwDDEInst
,
DdeCallback
,
CBF_FAIL_ADVISES
|
CBF_FAIL_POKES
,
0
);
hszProgmanTopic
=
DdeCreateStringHandleW
(
dwDDEInst
,
wszProgman
,
CP_WINUNICODE
);
hszProgmanService
=
DdeCreateStringHandleW
(
dwDDEInst
,
wszProgman
,
CP_WINUNICODE
);
hszAsterisk
=
DdeCreateStringHandleW
(
dwDDEInst
,
wszAsterisk
,
CP_WINUNICODE
);
hszShell
=
DdeCreateStringHandleW
(
dwDDEInst
,
wszShell
,
CP_WINUNICODE
);
hszAppProperties
=
DdeCreateStringHandleW
(
dwDDEInst
,
wszAppProperties
,
CP_WINUNICODE
);
hszFolders
=
DdeCreateStringHandleW
(
dwDDEInst
,
wszFolders
,
CP_WINUNICODE
);
DdeNameService
(
dwDDEInst
,
hszFolders
,
0
,
DNS_REGISTER
);
DdeNameService
(
dwDDEInst
,
hszProgmanService
,
0
,
DNS_REGISTER
);
DdeNameService
(
dwDDEInst
,
hszShell
,
0
,
DNS_REGISTER
);
}
else
{
/* unregister all services */
DdeNameService
(
dwDDEInst
,
0
,
0
,
DNS_UNREGISTER
);
DdeFreeStringHandle
(
dwDDEInst
,
hszFolders
);
DdeFreeStringHandle
(
dwDDEInst
,
hszAppProperties
);
DdeFreeStringHandle
(
dwDDEInst
,
hszShell
);
DdeFreeStringHandle
(
dwDDEInst
,
hszAsterisk
);
DdeFreeStringHandle
(
dwDDEInst
,
hszProgmanService
);
DdeFreeStringHandle
(
dwDDEInst
,
hszProgmanTopic
);
DdeUninitialize
(
dwDDEInst
);
}
}
dlls/shell32/shell32_main.c
View file @
d5714dfc
...
...
@@ -985,14 +985,6 @@ void WINAPI FreeIconList( DWORD dw )
}
/*************************************************************************
* ShellDDEInit (SHELL32.@)
*/
void
WINAPI
ShellDDEInit
(
BOOL
start
)
{
FIXME
(
"stub: %d
\n
"
,
start
);
}
/***********************************************************************
* DllGetVersion [SHELL32.@]
*
...
...
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