Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
wine
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Package Registry
Container Registry
Model registry
Operate
Terraform modules
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Alexey Alyaev
wine
Commits
d5714dfc
Commit
d5714dfc
authored
19 years ago
by
Robert Shearman
Committed by
Alexandre Julliard
19 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Implement ShellDDEInit.
parent
c9802931
Loading
Loading
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
dlls/shell32/Makefile.in
+1
-0
1 addition, 0 deletions
dlls/shell32/Makefile.in
dlls/shell32/dde.c
+177
-0
177 additions, 0 deletions
dlls/shell32/dde.c
dlls/shell32/shell32_main.c
+0
-8
0 additions, 8 deletions
dlls/shell32/shell32_main.c
with
178 additions
and
8 deletions
dlls/shell32/Makefile.in
+
1
−
0
View file @
d5714dfc
...
...
@@ -18,6 +18,7 @@ C_SRCS = \
clipboard.c
\
control.c
\
cpanelfolder.c
\
dde.c
\
dataobject.c
\
debughlp.c
\
dialogs.c
\
...
...
This diff is collapsed.
Click to expand it.
dlls/shell32/dde.c
0 → 100644
+
177
−
0
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
);
}
}
This diff is collapsed.
Click to expand it.
dlls/shell32/shell32_main.c
+
0
−
8
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.@]
*
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment