Read the MaskEdit template from the correct db field.

This commit is contained in:
Mike McCormack 2005-09-17 14:29:29 +00:00 committed by Alexandre Julliard
parent 18bd21d4f1
commit dcb0f239fe
1 changed files with 12 additions and 7 deletions

View File

@ -185,6 +185,8 @@ static LPWSTR msi_dialog_get_style( LPWSTR *text )
LPWSTR p = *text, q; LPWSTR p = *text, q;
DWORD len; DWORD len;
if( !*text )
return ret;
if( *p++ != '{' ) if( *p++ != '{' )
return ret; return ret;
q = strchrW( p, '}' ); q = strchrW( p, '}' );
@ -1018,7 +1020,7 @@ static struct msi_maskedit_info * msi_dialog_parse_groups( LPCWSTR mask )
} }
static void static void
msi_maskedit_create_children( struct msi_maskedit_info *info ) msi_maskedit_create_children( struct msi_maskedit_info *info, LPCWSTR font )
{ {
DWORD width, height, style, wx, ww; DWORD width, height, style, wx, ww;
RECT rect; RECT rect;
@ -1047,7 +1049,8 @@ msi_maskedit_create_children( struct msi_maskedit_info *info )
SendMessageW( hwnd, EM_LIMITTEXT, info->group[i].len, 0 ); SendMessageW( hwnd, EM_LIMITTEXT, info->group[i].len, 0 );
msi_dialog_set_font( info->dialog, hwnd, info->dialog->default_font ); msi_dialog_set_font( info->dialog, hwnd,
font?font:info->dialog->default_font );
info->group[i].hwnd = hwnd; info->group[i].hwnd = hwnd;
} }
} }
@ -1055,17 +1058,19 @@ msi_maskedit_create_children( struct msi_maskedit_info *info )
/* office 2003 uses "73931<````=````=````=````=`````>@@@@@" */ /* office 2003 uses "73931<````=````=````=````=`````>@@@@@" */
static UINT msi_dialog_maskedit_control( msi_dialog *dialog, MSIRECORD *rec ) static UINT msi_dialog_maskedit_control( msi_dialog *dialog, MSIRECORD *rec )
{ {
const static WCHAR pidt[] = {'P','I','D','T','e','m','p','l','a','t','e',0}; LPWSTR mask, title = NULL, val = NULL, font;
LPWSTR mask = NULL, title = NULL, val = NULL;
struct msi_maskedit_info *info = NULL; struct msi_maskedit_info *info = NULL;
UINT ret = ERROR_SUCCESS; UINT ret = ERROR_SUCCESS;
msi_control *control; msi_control *control;
LPCWSTR prop; LPCWSTR prop;
mask = msi_dup_property( dialog->package, pidt ); TRACE("\n");
mask = msi_get_deformatted_field( dialog->package, rec, 10 );
font = msi_dialog_get_style( &mask );
if( !mask ) if( !mask )
{ {
ERR("PIDTemplate is empty\n"); ERR("mask template is empty\n");
goto end; goto end;
} }
@ -1099,7 +1104,7 @@ static UINT msi_dialog_maskedit_control( msi_dialog *dialog, MSIRECORD *rec )
if( prop ) if( prop )
info->prop = strdupW( prop ); info->prop = strdupW( prop );
msi_maskedit_create_children( info ); msi_maskedit_create_children( info, font );
if( prop ) if( prop )
{ {