[Windows Mobile Apps and Games] l3v5y:
I think it appears 7 times in the code for 7 different resolutions.

In Resedit (what I'm using to get a quick overview) there are resolution states at the top

"8123 DIALOG 0, 0, 800, 480"
STYLE
CAPTION ""
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
{
CONTROL "", 23057, "MS_PHONE_LAYOUTHELPER", 0x40000000, 65535, 0, 0, 0
CONTROL "", 23056, "MS_PHONE_INVALIDPHONE", 0x50000000, 6, 0, 800, 46
CONTROL "", 23010, "MS_PHONE_BRANDING", 0x50000000, 6, 0, 276, 46
CONTROL "", 23009, "CUST_PHONE_STATUSICONS", 0x50000000, 634, 6, 160, 32
CONTROL "", 23022, "MS_PHONE_CALLSTATE", 0x50000000, 6, 50, 510, 40
CONTROL "", 23007, "MS_PHONE_ELAPSEDTIME", 0x50000000, 640, 50, 150, 40
CONTROL "", 23003, "MS_PHONE_CALLERIDINFO", 0x50000000, 15, 84, 776, 56
CONTROL "", 23033, "MS_PHONE_ACCUMULATOR", 0x50010000, 6, 172, 308, 27
CONTROL "", 23026, "MS_PHONE_CALLERLIST", 0x50000000, 6, 172, 772, 40
CONTROL "", 23053, "MS_PHONE_LAYOUTHELPER", 0x40000000, 65535, 0, 0, 0
CONTROL "", 23038, "MS_PHONE_LAYOUTHELPER", 0x40000000, 65535, 0, 0, 0
CONTROL "", 23008, "MS_PHONE_CONTACTPICTURE", 0x50000000, 692, 40, 98, 104
CONTROL "", 23016, "MS_PHONE_BUTTON", 0x50000000, 999, 999, 0, 0
CONTROL "", 23031, "MS_PHONE_BUTTON", 0x50000000, 267, 264, 267, 58
CONTROL "", 23013, "MS_PHONE_BUTTON", 0x50000000, 534, 264, 267, 58
CONTROL "", 23014, "MS_PHONE_BUTTON", 0x50000000, 534, 322, 267, 58
CONTROL "", 23029, "MS_PHONE_BUTTON", 0x50000000, 999, 999, 267, 58
CONTROL "", 23030, "MS_PHONE_BUTTON", 0x50000000, 999, 999, 267, 58
CONTROL "", 23027, "MS_PHONE_BUTTON", 0x50000000, 267, 322, 267, 58
CONTROL "", 23012, "MS_PHONE_BUTTON", 0x50000000, 1106, 1157, 267, 58
CONTROL "", 23015, "MS_PHONE_BUTTON", 0x50000000, 0, 322, 267, 58
CONTROL "", 3010, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 534, 98, 267, 58
CONTROL "", 3007, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 600, 320, 200, 60
CONTROL "", 3003, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 0, 320, 200, 60
CONTROL "", 3004, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 200, 320, 200, 60
CONTROL "", 3005, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 999, 999, 1, 1
CONTROL "", 3006, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 400, 320, 200, 60
CONTROL "", 3009, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 534, 264, 267, 58
CONTROL "", 3013, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 0, 264, 267, 58
CONTROL "", 3008, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL, 0, 0, 60, 100
CONTROL "", 3021, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 720, 0, 32, 32
CONTROL "", 3022, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 762, 0, 32, 32
CONTROL "", 3024, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 762, 0, 32, 32
CONTROL "", 3023, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 762, 0, 32, 32
CONTROL "", 3025, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 762, 0, 32, 32
}

and

"8110 DIALOG 0, 0, 240, 320"
STYLE
CAPTION ""
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
{
CONTROL "", 23057, "MS_PHONE_LAYOUTHELPER", 0x40000000, 65535, 0, 0, 0
CONTROL "", 23056, "MS_PHONE_INVALIDPHONE", 0x50000000, 3, 48, 155, 17
CONTROL "", 23010, "MS_PHONE_BRANDING", 0x50000000, 3, 48, 98, 17
CONTROL "", 23009, "CUST_PHONE_STATUSICONS", 0x50000000, 157, 0, 80, 17
CONTROL "", 23022, "MS_PHONE_CALLSTATE", 0x50000000, 3, 65, 104, 17
CONTROL "", 23007, "MS_PHONE_ELAPSEDTIME", 0x50000000, 101, 48, 57, 17
CONTROL "", 23003, "MS_PHONE_CALLERIDINFO", 0x50000000, 3, 84, 120, 28
CONTROL "", 23038, "MS_PHONE_LAYOUTHELPER", 0x40000000, 65535, 0, 0, 0
CONTROL "", 23008, "MS_PHONE_CONTACTPICTURE", 0x40000000, 124, 84, 34, 34
CONTROL "", 23002, "MS_PHONE_ACCUMULATOR", 0x50010000, 5, 0, 155, 46
CONTROL "", 23041, "MS_PHONE_BUTTON", 0x50000000, 1, 121, 78, 35
CONTROL "", 23042, "MS_PHONE_BUTTON", 0x50000000, 81, 121, 78, 35
CONTROL "", 23043, "MS_PHONE_BUTTON", 0x50000000, 161, 121, 78, 35
CONTROL "", 23044, "MS_PHONE_BUTTON", 0x50000000, 1, 158, 78, 35
CONTROL "", 23045, "MS_PHONE_BUTTON", 0x50000000, 81, 158, 78, 35
CONTROL "", 23046, "MS_PHONE_BUTTON", 0x50000000, 161, 158, 78, 35
CONTROL "", 23047, "MS_PHONE_BUTTON", 0x50000000, 1, 195, 78, 35
CONTROL "", 23048, "MS_PHONE_BUTTON", 0x50000000, 81, 195, 78, 35
CONTROL "", 23049, "MS_PHONE_BUTTON", 0x50000000, 161, 195, 78, 35
CONTROL "", 23051, "MS_PHONE_BUTTON", 0x50000000, 1, 232, 78, 35
CONTROL "", 23050, "MS_PHONE_BUTTON", 0x50000000, 81, 232, 78, 35
CONTROL "", 23052, "MS_PHONE_BUTTON", 0x50000000, 161, 232, 78, 35
CONTROL "", 23001, "MS_PHONE_BUTTON", 0x50000000, 161, 1, 78, 44
CONTROL "", 23012, "MS_PHONE_BUTTON", 0x50000000, 161, 119, 78, 35
CONTROL "", 23011, "MS_PHONE_BUTTON", 0x50000000, 161, 84, 78, 35
CONTROL "", 3001, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 161, 47, 78, 35
CONTROL "", 23014, "MS_PHONE_BUTTON", 0x50000000, 161, 233, 71, 28
CONTROL "", 3002, "HTC_SMARTDIAL_PLACEHOLDER", 0x50000000, 65436, 65436, 1, 1
CONTROL "", 23029, "MS_PHONE_BUTTON", 0x50000000, 163, 233, 71, 28
CONTROL "", 23030, "MS_PHONE_BUTTON", 0x50000000, 241, 321, 90, 27
CONTROL "", 3021, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 260, 0, 16, 16
CONTROL "", 3022, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 260, 0, 16, 16
CONTROL "", 3024, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 260, 0, 16, 16
CONTROL "", 3023, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 260, 0, 16, 16
CONTROL "", 3025, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 260, 0, 17, 17
}

Are two complete layouts for different resolutions.

That implies that phcanrc.dll can deal with other resolutions, but the only ones it has built in are 240x320 and WVGA.

I'll have a look at this in more detail tomorrow and see what I can achieve with reshacker, then I'll move on to IDA... :S

Even if I don't get that far, I hope the above info is vaguely useful to others.

Edit:

the actual control locations shouldn't be that hard to change (hopefully), but I'll need to resize all the images.

Hopefully, the buttons can all be shifted up a bit, losing some of the list of contacts, but keeping all of the buttons. If that doesn't work, it may be necessary to lose the bottom row of buttons, and reposition the backspace and 3G switch to the top of the screen.