winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
July 2010
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
2 participants
892 discussions
Start a n
N
ew thread
Matteo Bruni : d3dx9: Add ps_1_4 instructions parsing to the shader assembler.
by Alexandre Julliard
20 Jul '10
20 Jul '10
Module: wine Branch: master Commit: 7c834e30d75c6593030aafca209d8cdf23d1c968 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=7c834e30d75c6593030aafca2…
Author: Matteo Bruni <matteo.mystral(a)gmail.com> Date: Tue Jul 20 15:01:16 2010 +0200 d3dx9: Add ps_1_4 instructions parsing to the shader assembler. --- dlls/d3dx9_36/asmshader.l | 5 +++++ dlls/d3dx9_36/asmshader.y | 32 ++++++++++++++++++++++++++++++++ dlls/d3dx9_36/asmutils.c | 10 ++++++++++ dlls/d3dx9_36/d3dx9_36_private.h | 5 +++++ 4 files changed, 52 insertions(+), 0 deletions(-) diff --git a/dlls/d3dx9_36/asmshader.l b/dlls/d3dx9_36/asmshader.l index f02cc9e..8929183 100644 --- a/dlls/d3dx9_36/asmshader.l +++ b/dlls/d3dx9_36/asmshader.l @@ -162,15 +162,20 @@ lit {return INSTR_LIT; } mova {return INSTR_MOVA; } /* Pixel shader only instructions */ +cnd {return INSTR_CND; } cmp {return INSTR_CMP; } dp2add {return INSTR_DP2ADD; } +texcrd {return INSTR_TEXCRD; } texkill {return INSTR_TEXKILL; } texld {return INSTR_TEXLD; } +texdepth {return INSTR_TEXDEPTH; } +bem {return INSTR_BEM; } dsx {return INSTR_DSX; } dsy {return INSTR_DSY; } texldp {return INSTR_TEXLDP; } texldb {return INSTR_TEXLDB; } texldd {return INSTR_TEXLDD; } +phase {return INSTR_PHASE; } {REG_TEMP} { asmshader_lval.regnum = atoi(yytext + 1); diff --git a/dlls/d3dx9_36/asmshader.y b/dlls/d3dx9_36/asmshader.y index 503af1d..3ed2128 100644 --- a/dlls/d3dx9_36/asmshader.y +++ b/dlls/d3dx9_36/asmshader.y @@ -148,15 +148,20 @@ void set_rel_reg(struct shader_reg *reg, struct rel_reg *rel) { %token INSTR_MOVA /* Pixel shader only instructions */ +%token INSTR_CND %token INSTR_CMP %token INSTR_DP2ADD +%token INSTR_TEXCRD %token INSTR_TEXKILL %token INSTR_TEXLD +%token INSTR_TEXDEPTH +%token INSTR_BEM %token INSTR_DSX %token INSTR_DSY %token INSTR_TEXLDP %token INSTR_TEXLDB %token INSTR_TEXLDD +%token INSTR_PHASE /* Registers */ %token <regnum> REG_TEMP @@ -786,6 +791,11 @@ instruction: INSTR_ADD omods dreg ',' sregs TRACE("MOVA\n"); asm_ctx.funcs->instr(&asm_ctx, BWRITERSIO_MOVA, $2.mod, $2.shift, 0, &$3, &$5, 1); } + | INSTR_CND omods dreg ',' sregs + { + TRACE("CND\n"); + asm_ctx.funcs->instr(&asm_ctx, BWRITERSIO_CND, $2.mod, $2.shift, 0, &$3, &$5, 3); + } | INSTR_CMP omods dreg ',' sregs { TRACE("CMP\n"); @@ -796,11 +806,22 @@ instruction: INSTR_ADD omods dreg ',' sregs TRACE("DP2ADD\n"); asm_ctx.funcs->instr(&asm_ctx, BWRITERSIO_DP2ADD, $2.mod, $2.shift, 0, &$3, &$5, 3); } + | INSTR_TEXCRD omods dreg ',' sregs + { + TRACE("TEXCRD\n"); + /* texcoord and texcrd share the same opcode */ + asm_ctx.funcs->instr(&asm_ctx, BWRITERSIO_TEXCOORD, $2.mod, $2.shift, 0, &$3, &$5, 1); + } | INSTR_TEXKILL dreg { TRACE("TEXKILL\n"); asm_ctx.funcs->instr(&asm_ctx, BWRITERSIO_TEXKILL, 0, 0, 0, &$2, 0, 0); } + | INSTR_TEXDEPTH omods dreg + { + TRACE("TEXDEPTH\n"); + asm_ctx.funcs->instr(&asm_ctx, BWRITERSIO_TEXDEPTH, $2.mod, $2.shift, 0, &$3, 0, 0); + } | INSTR_TEXLD omods dreg ',' sregs { TRACE("TEXLD\n"); @@ -822,6 +843,11 @@ instruction: INSTR_ADD omods dreg ',' sregs TRACE("TEXLDB\n"); asm_ctx.funcs->instr(&asm_ctx, BWRITERSIO_TEXLDB, $2.mod, $2.shift, 0, &$3, &$5, 2); } + | INSTR_BEM omods dreg ',' sregs + { + TRACE("BEM\n"); + asm_ctx.funcs->instr(&asm_ctx, BWRITERSIO_BEM, $2.mod, $2.shift, 0, &$3, &$5, 2); + } | INSTR_DSX omods dreg ',' sregs { TRACE("DSX\n"); @@ -837,6 +863,12 @@ instruction: INSTR_ADD omods dreg ',' sregs TRACE("TEXLDD\n"); asm_ctx.funcs->instr(&asm_ctx, BWRITERSIO_TEXLDD, $2.mod, $2.shift, 0, &$3, &$5, 4); } + | INSTR_PHASE + { + TRACE("PHASE\n"); + asm_ctx.funcs->instr(&asm_ctx, BWRITERSIO_PHASE, 0, 0, 0, 0, 0, 0); + } + dreg: dreg_name rel_reg { diff --git a/dlls/d3dx9_36/asmutils.c b/dlls/d3dx9_36/asmutils.c index 09b97ee..8f42207 100644 --- a/dlls/d3dx9_36/asmutils.c +++ b/dlls/d3dx9_36/asmutils.c @@ -201,12 +201,16 @@ DWORD d3d9_opcode(DWORD bwriter_opcode) { case BWRITERSIO_DEFB: return D3DSIO_DEFB; case BWRITERSIO_DEFI: return D3DSIO_DEFI; + case BWRITERSIO_TEXCOORD: return D3DSIO_TEXCOORD; case BWRITERSIO_TEXKILL: return D3DSIO_TEXKILL; case BWRITERSIO_TEX: return D3DSIO_TEX; case BWRITERSIO_EXPP: return D3DSIO_EXPP; case BWRITERSIO_LOGP: return D3DSIO_LOGP; + case BWRITERSIO_CND: return D3DSIO_CND; case BWRITERSIO_DEF: return D3DSIO_DEF; + case BWRITERSIO_TEXDEPTH: return D3DSIO_TEXDEPTH; case BWRITERSIO_CMP: return D3DSIO_CMP; + case BWRITERSIO_BEM: return D3DSIO_BEM; case BWRITERSIO_DP2ADD: return D3DSIO_DP2ADD; case BWRITERSIO_DSX: return D3DSIO_DSX; case BWRITERSIO_DSY: return D3DSIO_DSY; @@ -215,6 +219,7 @@ DWORD d3d9_opcode(DWORD bwriter_opcode) { case BWRITERSIO_TEXLDL: return D3DSIO_TEXLDL; case BWRITERSIO_BREAKP: return D3DSIO_BREAKP; + case BWRITERSIO_PHASE: return D3DSIO_PHASE; case BWRITERSIO_COMMENT: return D3DSIO_COMMENT; case BWRITERSIO_END: return D3DSIO_END; @@ -545,12 +550,16 @@ const char *debug_print_opcode(DWORD opcode) { case BWRITERSIO_MOVA: return "mova"; case BWRITERSIO_DEFB: return "defb"; case BWRITERSIO_DEFI: return "defi"; + case BWRITERSIO_TEXCOORD: return "texcoord"; case BWRITERSIO_TEXKILL: return "texkill"; case BWRITERSIO_TEX: return "tex"; case BWRITERSIO_EXPP: return "expp"; case BWRITERSIO_LOGP: return "logp"; + case BWRITERSIO_CND: return "cnd"; case BWRITERSIO_DEF: return "def"; + case BWRITERSIO_TEXDEPTH: return "texdepth"; case BWRITERSIO_CMP: return "cmp"; + case BWRITERSIO_BEM: return "bem"; case BWRITERSIO_DP2ADD: return "dp2add"; case BWRITERSIO_DSX: return "dsx"; case BWRITERSIO_DSY: return "dsy"; @@ -558,6 +567,7 @@ const char *debug_print_opcode(DWORD opcode) { case BWRITERSIO_SETP: return "setp"; case BWRITERSIO_TEXLDL: return "texldl"; case BWRITERSIO_BREAKP: return "breakp"; + case BWRITERSIO_PHASE: return "phase"; case BWRITERSIO_TEXLDP: return "texldp"; case BWRITERSIO_TEXLDB: return "texldb"; diff --git a/dlls/d3dx9_36/d3dx9_36_private.h b/dlls/d3dx9_36/d3dx9_36_private.h index f366619..6e7d970 100644 --- a/dlls/d3dx9_36/d3dx9_36_private.h +++ b/dlls/d3dx9_36/d3dx9_36_private.h @@ -476,12 +476,16 @@ typedef enum _BWRITERSHADER_INSTRUCTION_OPCODE_TYPE { BWRITERSIO_DEFB, BWRITERSIO_DEFI, + BWRITERSIO_TEXCOORD, BWRITERSIO_TEXKILL, BWRITERSIO_TEX, BWRITERSIO_EXPP, BWRITERSIO_LOGP, + BWRITERSIO_CND, BWRITERSIO_DEF, + BWRITERSIO_TEXDEPTH, BWRITERSIO_CMP, + BWRITERSIO_BEM, BWRITERSIO_DP2ADD, BWRITERSIO_DSX, BWRITERSIO_DSY, @@ -492,6 +496,7 @@ typedef enum _BWRITERSHADER_INSTRUCTION_OPCODE_TYPE { BWRITERSIO_TEXLDP, BWRITERSIO_TEXLDB, + BWRITERSIO_PHASE, BWRITERSIO_COMMENT, BWRITERSIO_END, } BWRITERSHADER_INSTRUCTION_OPCODE_TYPE;
1
0
0
0
Matteo Bruni : d3dx9: Add shift modifiers parsing to the shader assembler.
by Alexandre Julliard
20 Jul '10
20 Jul '10
Module: wine Branch: master Commit: 949eca401254bbad2a884d5612d257b398a60e1c URL:
http://source.winehq.org/git/wine.git/?a=commit;h=949eca401254bbad2a884d561…
Author: Matteo Bruni <matteo.mystral(a)gmail.com> Date: Tue Jul 20 15:01:16 2010 +0200 d3dx9: Add shift modifiers parsing to the shader assembler. --- dlls/d3dx9_36/asmparser.c | 3 ++- dlls/d3dx9_36/asmshader.l | 5 +++++ dlls/d3dx9_36/asmshader.y | 37 ++++++++++++++++++++++++++++++++++++- dlls/d3dx9_36/asmutils.c | 22 ++++++++++++++++++++++ dlls/d3dx9_36/d3dx9_36_private.h | 1 + 5 files changed, 66 insertions(+), 2 deletions(-) diff --git a/dlls/d3dx9_36/asmparser.c b/dlls/d3dx9_36/asmparser.c index e9d0ea0..e1a32ca 100644 --- a/dlls/d3dx9_36/asmparser.c +++ b/dlls/d3dx9_36/asmparser.c @@ -232,8 +232,9 @@ static void asmparser_instr(struct asm_parser *This, DWORD opcode, if(!This->shader) return; - TRACE_(parsed_shader)("%s%s%s ", debug_print_opcode(opcode), + TRACE_(parsed_shader)("%s%s%s%s ", debug_print_opcode(opcode), debug_print_dstmod(mod), + debug_print_shift(shift), debug_print_comp(comp)); if(dst) { TRACE_(parsed_shader)("%s", debug_print_dstreg(dst)); diff --git a/dlls/d3dx9_36/asmshader.l b/dlls/d3dx9_36/asmshader.l index cbf0a21..f02cc9e 100644 --- a/dlls/d3dx9_36/asmshader.l +++ b/dlls/d3dx9_36/asmshader.l @@ -276,6 +276,11 @@ ps_3_0 {return VER_PS30; } /* Output modifiers */ \_x2 {return SHIFT_X2; } +\_x4 {return SHIFT_X4; } +\_x8 {return SHIFT_X8; } +\_d2 {return SHIFT_D2; } +\_d4 {return SHIFT_D4; } +\_d8 {return SHIFT_D8; } \_sat {return MOD_SAT; } \_pp {return MOD_PP; } \_centroid {return MOD_CENTROID; } diff --git a/dlls/d3dx9_36/asmshader.y b/dlls/d3dx9_36/asmshader.y index 16a5a17..503af1d 100644 --- a/dlls/d3dx9_36/asmshader.y +++ b/dlls/d3dx9_36/asmshader.y @@ -199,6 +199,11 @@ void set_rel_reg(struct shader_reg *reg, struct rel_reg *rel) { /* Output modifiers */ %token SHIFT_X2 +%token SHIFT_X4 +%token SHIFT_X8 +%token SHIFT_D2 +%token SHIFT_D4 +%token SHIFT_D8 %token MOD_SAT %token MOD_PP %token MOD_CENTROID @@ -1045,7 +1050,37 @@ omods: /* Empty */ } } -omodifier: MOD_SAT +omodifier: SHIFT_X2 + { + $$.mod = 0; + $$.shift = 1; + } + | SHIFT_X4 + { + $$.mod = 0; + $$.shift = 2; + } + | SHIFT_X8 + { + $$.mod = 0; + $$.shift = 3; + } + | SHIFT_D2 + { + $$.mod = 0; + $$.shift = 15; + } + | SHIFT_D4 + { + $$.mod = 0; + $$.shift = 14; + } + | SHIFT_D8 + { + $$.mod = 0; + $$.shift = 13; + } + | MOD_SAT { $$.mod = BWRITERSPDM_SATURATE; $$.shift = 0; diff --git a/dlls/d3dx9_36/asmutils.c b/dlls/d3dx9_36/asmutils.c index 092844f..09b97ee 100644 --- a/dlls/d3dx9_36/asmutils.c +++ b/dlls/d3dx9_36/asmutils.c @@ -274,6 +274,28 @@ const char *debug_print_dstmod(DWORD mod) { } } +const char *debug_print_shift(DWORD shift) { + static const char * const shiftstrings[] = { + "", + "_x2", + "_x4", + "_x8", + "_x16", + "_x32", + "", + "", + "", + "", + "", + "", + "_d16", + "_d8", + "_d4", + "_d2", + }; + return shiftstrings[shift]; +} + static const char *get_regname(const struct shader_reg *reg) { switch(reg->type) { case BWRITERSPR_TEMP: diff --git a/dlls/d3dx9_36/d3dx9_36_private.h b/dlls/d3dx9_36/d3dx9_36_private.h index d5ac7e9..f366619 100644 --- a/dlls/d3dx9_36/d3dx9_36_private.h +++ b/dlls/d3dx9_36/d3dx9_36_private.h @@ -400,6 +400,7 @@ struct bc_writer { /* Debug utility routines */ const char *debug_print_srcmod(DWORD mod); const char *debug_print_dstmod(DWORD mod); +const char *debug_print_shift(DWORD shift); const char *debug_print_dstreg(const struct shader_reg *reg); const char *debug_print_srcreg(const struct shader_reg *reg); const char *debug_print_swizzle(DWORD swizzle);
1
0
0
0
Matteo Bruni : d3dx9: Add ps_1_x source register modifiers to the shader assembler.
by Alexandre Julliard
20 Jul '10
20 Jul '10
Module: wine Branch: master Commit: 4c5954eaa4b39bc92f8b20d4f99d7cc6802a76cd URL:
http://source.winehq.org/git/wine.git/?a=commit;h=4c5954eaa4b39bc92f8b20d4f…
Author: Matteo Bruni <matteo.mystral(a)gmail.com> Date: Tue Jul 20 15:01:16 2010 +0200 d3dx9: Add ps_1_x source register modifiers to the shader assembler. --- dlls/d3dx9_36/asmshader.l | 6 ++++ dlls/d3dx9_36/asmshader.y | 68 ++++++++++++++++++++++++++++++++++++++++++++- dlls/d3dx9_36/asmutils.c | 54 +++++++++++++++++++++++++++++++++++ 3 files changed, 127 insertions(+), 1 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=4c5954eaa4b39bc92f8b2…
1
0
0
0
David Hedberg : include: Add INameSpaceTreeControl, INameSpaceTreeControl2 and INameSpaceTreeControlEvents interface declarations .
by Alexandre Julliard
20 Jul '10
20 Jul '10
Module: wine Branch: master Commit: a46f80acdc02011b425e0931c0d18d7963f60097 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=a46f80acdc02011b425e0931c…
Author: David Hedberg <david.hedberg(a)gmail.com> Date: Tue Jul 20 15:02:50 2010 +0200 include: Add INameSpaceTreeControl, INameSpaceTreeControl2 and INameSpaceTreeControlEvents interface declarations. --- include/shobjidl.idl | 293 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 293 insertions(+), 0 deletions(-) diff --git a/include/shobjidl.idl b/include/shobjidl.idl index 87ae657..333c32a 100644 --- a/include/shobjidl.idl +++ b/include/shobjidl.idl @@ -1902,3 +1902,296 @@ interface IExplorerBrowser : IUnknown [in] REFIID riid, [out, iid_is(riid)] void **ppv); } + +/***************************************************************************** + * INameSpaceTreeControl interface + */ +[ + object, + uuid(028212A3-B627-47E9-8856-C14265554E4F) +] +interface INameSpaceTreeControl : IUnknown +{ + [v1_enum] enum _NSTCSTYLE { + NSTCS_HASEXPANDOS = 0x00000001, + NSTCS_HASLINES = 0x00000002, + NSTCS_SINGLECLICKEXPAND = 0x00000004, + NSTCS_FULLROWSELECT = 0x00000008, + NSTCS_SPRINGEXPAND = 0x00000010, + NSTCS_HORIZONTALSCROLL = 0x00000020, + NSTCS_ROOTHASEXPANDO = 0x00000040, + NSTCS_SHOWSELECTIONALWAYS = 0x00000080, + NSTCS_NOINFOTIP = 0x00000200, + NSTCS_EVENHEIGHT = 0x00000400, + NSTCS_NOREPLACEOPEN = 0x00000800, + NSTCS_DISABLEDRAGDROP = 0x00001000, + NSTCS_NOORDERSTREAM = 0x00002000, + NSTCS_RICHTOOLTIP = 0x00004000, + NSTCS_BORDER = 0x00008000, + NSTCS_NOEDITLABELS = 0x00010000, + NSTCS_TABSTOP = 0x00020000, + NSTCS_FAVORITESMODE = 0x00080000, + NSTCS_AUTOHSCROLL = 0x00100000, + NSTCS_FADEINOUTEXPANDOS = 0x00200000, + NSTCS_EMPTYTEXT = 0x00400000, + NSTCS_CHECKBOXES = 0x00800000, + NSTCS_PARTIALCHECKBOXES = 0x01000000, + NSTCS_EXCLUSIONCHECKBOXES = 0x02000000, + NSTCS_DIMMEDCHECKBOXES = 0x04000000, + NSTCS_NOINDENTCHECKS = 0x08000000, + NSTCS_ALLOWJUNCTIONS = 0x10000000, + NSTCS_SHOWTABSBUTTON = 0x20000000, + NSTCS_SHOWDELETEBUTTON = 0x40000000, + NSTCS_SHOWREFRESHBUTTON = (int)0x80000000 + }; + typedef DWORD NSTCSTYLE; + + [v1_enum] enum _NSTCROOTSTYLE { + NSTCRS_VISIBLE = 0x0000, + NSTCRS_HIDDEN = 0x0001, + NSTCRS_EXPANDED = 0x0002 + }; + typedef DWORD NSTCROOTSTYLE; + + [v1_enum] enum _NSTCITEMSTATE { + NSTCIS_NONE = 0x0000, + NSTCIS_SELECTED = 0x0001, + NSTCIS_EXPANDED = 0x0002, + NSTCIS_BOLD = 0x0004, + NSTCIS_DISABLED = 0x0008, + NSTCIS_SELECTEDNOEXPAND = 0x0010 + }; + typedef DWORD NSTCITEMSTATE; + + typedef [v1_enum] enum NSTCGNI { + NSTCGNI_NEXT = 0, + NSTCGNI_NEXTVISIBLE = 1, + NSTCGNI_PREV = 2, + NSTCGNI_PREVVISIBLE = 3, + NSTCGNI_PARENT = 4, + NSTCGNI_CHILD = 5, + NSTCGNI_FIRSTVISIBLE = 6, + NSTCGNI_LASTVISIBLE = 7 + } NSTCGNI; + + HRESULT Initialize( + [in] HWND hwndParent, + [in, unique] RECT *prc, + [in] NSTCSTYLE nstcsFlags); + + HRESULT TreeAdvise( + [in] IUnknown *punk, + [out] DWORD *pdwCookie); + + HRESULT TreeUnadvise( + [in] DWORD dwCookie); + + HRESULT AppendRoot( + [in] IShellItem *psiRoot, + [in] SHCONTF grfEnumFlags, + [in] NSTCROOTSTYLE grfRootStyle, + [in, unique] IShellItemFilter *pif); + + HRESULT InsertRoot( + [in] int iIndex, + [in] IShellItem *psiRoot, + [in] SHCONTF grfEnumFlags, + [in] NSTCROOTSTYLE grfRootStyle, + [in, unique] IShellItemFilter *pif); + + HRESULT RemoveRoot( + [in] IShellItem *psiRoot); + + HRESULT RemoveAllRoots(); + + HRESULT GetRootItems( + [out] IShellItemArray **ppsiaRootItems); + + HRESULT SetItemState( + [in] IShellItem *psi, + [in] NSTCITEMSTATE nstcisMask, + [in] NSTCITEMSTATE nstcisFlags); + + HRESULT GetItemState( + [in] IShellItem *psi, + [in] NSTCITEMSTATE nstcismask, + [out] NSTCITEMSTATE *pnstcisFlags); + + HRESULT GetSelectedItems( + [out] IShellItemArray **psiaItems); + + HRESULT GetItemCustomState( + [in] IShellItem *psi, + [out] int *piStateNumber); + + HRESULT SetItemCustomState( + [in] IShellItem *psi, + [in] int iStateNumber); + + HRESULT EnsureItemVisible( + [in] IShellItem *psi); + + HRESULT SetTheme( + [in, string] LPCWSTR pszTheme); + + HRESULT GetNextItem( + [in, unique] IShellItem *psi, + [in] NSTCGNI nstcgi, + [out] IShellItem **ppsiNext); + + HRESULT HitTest( + [in] POINT *ppt, + [out] IShellItem **ppsiOut); + + HRESULT GetItemRect( + [in] IShellItem *psi, + [out] RECT *prect); + + HRESULT CollapseAll(); +} + +/***************************************************************************** + * INameSpaceTreeControl2 interface + */ +[ + object, + uuid(7CC7AED8-290E-49BC-8945-C1401CC9306C) +] +interface INameSpaceTreeControl2 : INameSpaceTreeControl +{ + typedef [v1_enum] enum NSTCSTYLE2 { + NSTCS2_DEFAULT = 0x00, + NSTCS2_INTERRUPTNOTIFICATIONS = 0x01, + NSTCS2_SHOWNULLSPACEMENU = 0x02, + NSTCS2_DISPLAYPADDING = 0x04, + NSTCS2_DISPLAYPINNEDONLY = 0x08, + NTSCS2_NOSINGLETONAUTOEXPAND = 0x10, /* The apparent typo here is */ + NTSCS2_NEVERINSERTNONENUMERATED = 0x20 /* present also in the Win SDK */ + } NSTCSTYLE2; + cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(NSTCSTYLE2)") + + HRESULT SetControlStyle( + [in] NSTCSTYLE nstcsMask, + [in] NSTCSTYLE nstcsStyle); + + HRESULT GetControlStyle( + [in] NSTCSTYLE nstcsMask, + [out] NSTCSTYLE *pnstcsStyle); + + HRESULT SetControlStyle2( + [in] NSTCSTYLE2 nstcsMask, + [in] NSTCSTYLE2 nstcsStyle); + + HRESULT GetControlStyle2( + [in] NSTCSTYLE2 nstcsMask, + [out] NSTCSTYLE2 *pnstcsStyle); +} + +/***************************************************************************** + * INameSpaceTreeControlEvents interface + */ + +[ + object, + uuid(93D77985-B3D8-4484-8318-672CDDA002CE), + local +] +interface INameSpaceTreeControlEvents : IUnknown +{ + [v1_enum] enum _NSTCEHITTEST { + NSTCEHT_NOWHERE = 0x0001, + NSTCEHT_ONITEMICON = 0x0002, + NSTCEHT_ONITEMLABEL = 0x0004, + NSTCEHT_ONITEMIDENT = 0x0008, + NSTCEHT_ONITEMBUTTON = 0x0010, + NSTCEHT_ONITEMRIGHT = 0x0020, + NSTCEHT_ONITEMSTATEICON = 0x0040, + NSTCEHT_ONITEM = 0x0046, + NSTCEHT_ONITEMTABBUTTON = 0x1000 + }; + typedef DWORD NSTCEHITTEST; + + [v1_enum] enum _NSTCECLICKTYPE { + NSTCECT_LBUTTON = 0x1, + NSTCECT_MBUTTON = 0x2, + NSTCECT_RBUTTON = 0x3, + NSTCECT_BUTTON = 0x3, + NSTCECT_DBLCLICK = 0x4 + }; + typedef DWORD NSTCECLICKTYPE; + + HRESULT OnItemClick( + [in] IShellItem *psi, + [in] NSTCEHITTEST nstceHitTest, + [in] NSTCECLICKTYPE nstceClickType); + + HRESULT OnPropertyItemCommit( + [in] IShellItem *psi); + + HRESULT OnItemStateChanging( + [in] IShellItem *psi, + [in] NSTCITEMSTATE nstcisMask, + [in] NSTCITEMSTATE nstcisState); + + HRESULT OnItemStateChanged( + [in] IShellItem *psi, + [in] NSTCITEMSTATE nstcisMask, + [in] NSTCITEMSTATE nstcisState); + + HRESULT OnSelectionChanged( + [in] IShellItemArray *psiaSelection); + + HRESULT OnKeyboardInput( + [in] UINT uMsg, + [in] WPARAM wParam, + [in] LPARAM lParam); + + HRESULT OnBeforeExpand( + [in] IShellItem *psi); + + HRESULT OnAfterExpand( + [in] IShellItem *psi); + + HRESULT OnBeginLabelEdit( + [in] IShellItem *psi); + + HRESULT OnEndLabelEdit( + [in] IShellItem *psi); + + HRESULT OnGetToolTip( + [in] IShellItem *psi, + [out, string, size_is(cchTip)] LPWSTR pszTip, + [in] int cchTip); + + HRESULT OnBeforeItemDelete( + [in] IShellItem *psi); + + HRESULT OnItemAdded( + [in] IShellItem *psi, + [in] BOOL fIsRoot); + + HRESULT OnItemDeleted( + [in] IShellItem *psi, + [in] BOOL fIsRoot); + + HRESULT OnBeforeContextMenu( + [in, unique] IShellItem *psi, + [in] REFIID riid, + [out, iid_is(riid)] void **ppv); + + HRESULT OnAfterContextMenu( + [in] IShellItem *psi, + [in] IContextMenu *pcmIn, + [in] REFIID riid, + [out, iid_is(riid)] void **ppv); + + HRESULT OnBeforeStateImageChange( + [in] IShellItem *psi, + [out] int *piDefaultIcon, + [out] int *piOpenIcon); + + HRESULT OnGetDefaultIconIndex( + [in] IShellItem *psi, + [out] int *piDefaultIcon, + [out] int *piOpenIcon); +}
1
0
0
0
Hans Leidekker : msi: Keep track of the patch filename in apply_registered_patch.
by Alexandre Julliard
20 Jul '10
20 Jul '10
Module: wine Branch: master Commit: 9b329d5bab6d236d8b9d2302d5a61932766f64a8 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=9b329d5bab6d236d8b9d2302d…
Author: Hans Leidekker <hans(a)codeweavers.com> Date: Tue Jul 20 14:55:08 2010 +0200 msi: Keep track of the patch filename in apply_registered_patch. --- dlls/msi/package.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/dlls/msi/package.c b/dlls/msi/package.c index fba722f..bff1bb4 100644 --- a/dlls/msi/package.c +++ b/dlls/msi/package.c @@ -1210,6 +1210,13 @@ static UINT apply_registered_patch( MSIPACKAGE *package, LPCWSTR patch_code ) return r; } + patch_info->localfile = strdupW( patch_file ); + if (!patch_info->localfile) + { + msiobj_release( &patch_db->hdr ); + return ERROR_OUTOFMEMORY; + } + r = msi_apply_patch_db( package, patch_db, patch_info ); msiobj_release( &patch_db->hdr ); if (r != ERROR_SUCCESS)
1
0
0
0
Hans Leidekker : msi: Unpublish the product after running all the actions.
by Alexandre Julliard
20 Jul '10
20 Jul '10
Module: wine Branch: master Commit: b87271150a476c603097c818945cd614f6d936f0 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=b87271150a476c603097c8189…
Author: Hans Leidekker <hans(a)codeweavers.com> Date: Tue Jul 20 14:54:50 2010 +0200 msi: Unpublish the product after running all the actions. --- dlls/msi/action.c | 29 ++++++++++++----------------- 1 files changed, 12 insertions(+), 17 deletions(-) diff --git a/dlls/msi/action.c b/dlls/msi/action.c index 1300c65..b101533 100644 --- a/dlls/msi/action.c +++ b/dlls/msi/action.c @@ -4752,11 +4752,9 @@ static UINT ACTION_InstallExecute(MSIPACKAGE *package) return execute_script(package,INSTALL_SCRIPT); } -static UINT msi_unpublish_product(MSIPACKAGE *package) +static UINT msi_unpublish_product(MSIPACKAGE *package, WCHAR *remove) { - LPWSTR upgrade; - LPWSTR remove = NULL; - LPWSTR *features = NULL; + WCHAR *upgrade, **features; BOOL full_uninstall = TRUE; MSIFEATURE *feature; MSIPATCHINFO *patch; @@ -4764,14 +4762,9 @@ static UINT msi_unpublish_product(MSIPACKAGE *package) static const WCHAR szUpgradeCode[] = {'U','p','g','r','a','d','e','C','o','d','e',0}; - remove = msi_dup_property(package->db, szRemove); - if (!remove) - return ERROR_SUCCESS; - features = msi_split_string(remove, ','); if (!features) { - msi_free(remove); ERR("REMOVE feature list is empty!\n"); return ERROR_FUNCTION_FAILED; } @@ -4786,9 +4779,10 @@ static UINT msi_unpublish_product(MSIPACKAGE *package) full_uninstall = FALSE; } } + msi_free(features); if (!full_uninstall) - goto done; + return ERROR_SUCCESS; MSIREG_DeleteProductKey(package->ProductCode); MSIREG_DeleteUserDataProductKey(package->ProductCode); @@ -4817,19 +4811,13 @@ static UINT msi_unpublish_product(MSIPACKAGE *package) MSIREG_DeleteUserDataPatchKey(patch->patchcode, package->Context); } -done: - msi_free(remove); - msi_free(features); return ERROR_SUCCESS; } static UINT ACTION_InstallFinalize(MSIPACKAGE *package) { UINT rc; - - rc = msi_unpublish_product(package); - if (rc != ERROR_SUCCESS) - return rc; + WCHAR *remove; /* turn off scheduling */ package->script->CurrentlyScripting= FALSE; @@ -4841,7 +4829,14 @@ static UINT ACTION_InstallFinalize(MSIPACKAGE *package) /* then handle Commit Actions */ rc = execute_script(package,COMMIT_SCRIPT); + if (rc != ERROR_SUCCESS) + return rc; + + remove = msi_dup_property(package->db, szRemove); + if (remove) + rc = msi_unpublish_product(package, remove); + msi_free(remove); return rc; }
1
0
0
0
Hans Leidekker : msi: Store the patch state in the registry.
by Alexandre Julliard
20 Jul '10
20 Jul '10
Module: wine Branch: master Commit: f7aa88fe7d2d217bd4e1c230eb0a75b5d746997c URL:
http://source.winehq.org/git/wine.git/?a=commit;h=f7aa88fe7d2d217bd4e1c230e…
Author: Hans Leidekker <hans(a)codeweavers.com> Date: Tue Jul 20 14:54:34 2010 +0200 msi: Store the patch state in the registry. --- dlls/msi/action.c | 5 +++++ dlls/msi/msipriv.h | 1 + 2 files changed, 6 insertions(+), 0 deletions(-) diff --git a/dlls/msi/action.c b/dlls/msi/action.c index 7ae8286..1300c65 100644 --- a/dlls/msi/action.c +++ b/dlls/msi/action.c @@ -567,6 +567,7 @@ UINT msi_apply_patch_db( MSIPACKAGE *package, MSIDATABASE *patch_db, MSIPATCHINF */ append_storage_to_db( package->db, patch_db->storage ); + patch->state = MSIPATCHSTATE_APPLIED; list_add_tail( &package->patches, &patch->entry ); return ERROR_SUCCESS; } @@ -3879,6 +3880,10 @@ static UINT msi_publish_patches( MSIPACKAGE *package, HKEY prodkey ) goto done; res = RegCreateKeyExW( product_patches_key, patch_squashed, 0, NULL, 0, KEY_ALL_ACCESS, NULL, &patch_key, NULL ); + if (res != ERROR_SUCCESS) + goto done; + + res = RegSetValueExW( patch_key, szState, 0, REG_DWORD, (const BYTE *)&patch->state, sizeof(patch->state) ); RegCloseKey( patch_key ); if (res != ERROR_SUCCESS) goto done; diff --git a/dlls/msi/msipriv.h b/dlls/msi/msipriv.h index d1e8113..8e978cc 100644 --- a/dlls/msi/msipriv.h +++ b/dlls/msi/msipriv.h @@ -153,6 +153,7 @@ typedef struct tagMSIPATCHINFO LPWSTR patchcode; LPWSTR transforms; LPWSTR localfile; + MSIPATCHSTATE state; } MSIPATCHINFO; typedef struct _column_info
1
0
0
0
Hans Leidekker : msi: Add a test for MsiSetFeatureState.
by Alexandre Julliard
20 Jul '10
20 Jul '10
Module: wine Branch: master Commit: 03cddf9d05341b3e3dc2badff9cdcf4126d54c54 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=03cddf9d05341b3e3dc2badff…
Author: Hans Leidekker <hans(a)codeweavers.com> Date: Tue Jul 20 14:54:20 2010 +0200 msi: Add a test for MsiSetFeatureState. --- dlls/msi/tests/package.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/dlls/msi/tests/package.c b/dlls/msi/tests/package.c index d2514ce..ad22575 100644 --- a/dlls/msi/tests/package.c +++ b/dlls/msi/tests/package.c @@ -9241,6 +9241,9 @@ static void test_featureparents(void) r = MsiSetFeatureState(hpkg, "orion", INSTALLSTATE_ABSENT); ok( r == ERROR_SUCCESS, "failed to set feature state: %d\n", r); + r = MsiSetFeatureState(hpkg, "nosuchfeature", INSTALLSTATE_ABSENT); + ok( r == ERROR_UNKNOWN_FEATURE, "Expected ERROR_UNKNOWN_FEATURE, got %u\n", r); + state = 0xdeadbee; action = 0xdeadbee; r = MsiGetFeatureState(hpkg, "zodiac", &state, &action);
1
0
0
0
Hans Leidekker : shlwapi: Don't trace the contents of output buffers.
by Alexandre Julliard
20 Jul '10
20 Jul '10
Module: wine Branch: master Commit: 7a2944d5adc5c4d572bc4215cf24d74993e56ed7 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=7a2944d5adc5c4d572bc4215c…
Author: Hans Leidekker <hans(a)codeweavers.com> Date: Tue Jul 20 14:52:02 2010 +0200 shlwapi: Don't trace the contents of output buffers. --- dlls/shlwapi/shlwapi.spec | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dlls/shlwapi/shlwapi.spec b/dlls/shlwapi/shlwapi.spec index 8ad4373..a277f50 100644 --- a/dlls/shlwapi/shlwapi.spec +++ b/dlls/shlwapi/shlwapi.spec @@ -550,10 +550,10 @@ @ stdcall AssocIsDangerous(long) @ stdcall AssocQueryKeyA(long long str ptr ptr) @ stdcall AssocQueryKeyW(long long wstr ptr ptr) -@ stdcall AssocQueryStringA(long long ptr ptr str ptr) -@ stdcall AssocQueryStringByKeyA(long long ptr ptr str ptr) -@ stdcall AssocQueryStringByKeyW(long long ptr ptr wstr ptr) -@ stdcall AssocQueryStringW(long long ptr ptr wstr ptr) +@ stdcall AssocQueryStringA(long long ptr ptr ptr ptr) +@ stdcall AssocQueryStringByKeyA(long long ptr ptr ptr ptr) +@ stdcall AssocQueryStringByKeyW(long long ptr ptr ptr ptr) +@ stdcall AssocQueryStringW(long long ptr ptr ptr ptr) @ stdcall ChrCmpIA(long long) @ stdcall ChrCmpIW(long long) @ stdcall ColorAdjustLuma(long long long)
1
0
0
0
Hans Leidekker : advapi32: Stub out the Safer* functions a bit more.
by Alexandre Julliard
20 Jul '10
20 Jul '10
Module: wine Branch: master Commit: f2081fb2bd4f234dc1ddb1afae572a4dfa750f0f URL:
http://source.winehq.org/git/wine.git/?a=commit;h=f2081fb2bd4f234dc1ddb1afa…
Author: Hans Leidekker <hans(a)codeweavers.com> Date: Tue Jul 20 14:50:37 2010 +0200 advapi32: Stub out the Safer* functions a bit more. --- dlls/advapi32/advapi32.spec | 4 ++-- dlls/advapi32/security.c | 25 ++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec index 892e84a..0515b72 100644 --- a/dlls/advapi32/advapi32.spec +++ b/dlls/advapi32/advapi32.spec @@ -540,8 +540,8 @@ @ stdcall ReportEventA (long long long long ptr long long str ptr) @ stdcall ReportEventW (long long long long ptr long long wstr ptr) @ stdcall RevertToSelf() -# @ stub SaferCloseLevel -# @ stub SaferComputeTokenFromLevel +@ stdcall SaferCloseLevel(ptr) +@ stdcall SaferComputeTokenFromLevel(ptr ptr ptr long ptr) @ stdcall SaferCreateLevel(long long long ptr ptr) # @ stub SaferGetLevelInformation @ stdcall SaferGetPolicyInformation(long long long ptr ptr ptr) diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c index 821fb86..d86bb1b 100644 --- a/dlls/advapi32/security.c +++ b/dlls/advapi32/security.c @@ -5418,7 +5418,30 @@ BOOL WINAPI SaferCreateLevel(DWORD ScopeId, DWORD LevelId, DWORD OpenFlags, SAFER_LEVEL_HANDLE* LevelHandle, LPVOID lpReserved) { FIXME("(%u, %x, %u, %p, %p) stub\n", ScopeId, LevelId, OpenFlags, LevelHandle, lpReserved); - return FALSE; + + *LevelHandle = (SAFER_LEVEL_HANDLE)0xdeadbeef; + return TRUE; +} + +/****************************************************************************** + * SaferComputeTokenFromLevel [ADVAPI32.@] + */ +BOOL WINAPI SaferComputeTokenFromLevel(SAFER_LEVEL_HANDLE handle, HANDLE token, PHANDLE access_token, + DWORD flags, LPVOID reserved) +{ + FIXME("(%p, %p, %p, %x, %p) stub\n", handle, token, access_token, flags, reserved); + + *access_token = (HANDLE)0xdeadbeef; + return TRUE; +} + +/****************************************************************************** + * SaferCloseLevel [ADVAPI32.@] + */ +BOOL WINAPI SaferCloseLevel(SAFER_LEVEL_HANDLE handle) +{ + FIXME("(%p) stub\n", handle); + return TRUE; } DWORD WINAPI TreeResetNamedSecurityInfoW( LPWSTR pObjectName,
1
0
0
0
← Newer
1
...
49
50
51
52
53
54
55
...
90
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
Results per page:
10
25
50
100
200